SUMTEC -- There's a thing in my bloglet.

But it's not only one. It's many. It's the same as other things but it exactly likes nothing else...

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

假设我有一个object类型的变量o,需要转化成string类型的变量s。那么请问下列方式当中的那一个方案更加有效率:

1、

= (string) o;

2、
= o.ToString();

相关提示:
1、(string) 强制转换对应一句IL语句castclass,在IL中大概表现为:
      L_0019: ldloc.0
      L_001a: castclass string
      L_001f: stfld string WindowsApplication1.Form1::testString

这样的形势,注意强制转换只增加L_001a这一句IL语句。

2、o.ToString() 实际上是调用了从object继承出来的ToString()虚函数,这一个虚函数在string类型里面被重写,代码如下:
public override string ToString()
{
      return this;
}
如果效率有差别,差别是多大呢?答案在于实践当中。
posted on 2004-10-27 16:30  Sumtec  阅读(1232)  评论(5)    收藏  举报