请问:
(destinationType)sourceVar和
 使用Convert有区别吗!?为什么!?

解决方案 »

  1.   

    (destinationType)可以随便写,可以用自己的类。但是Convert.ToXXX里面可没有自己的类啊
      

  2.   

    当然不一样,(destinationType)sourceVar要保证变量sourceVar是destinationType类型或destinationType的子类才能正确转换,并且仅仅是类型转换,并不改变原来的变量。但Convert。To...时会根据源类型和目标类型进行值的转换。源变量和目标值是不同的。
      

  3.   

    楼上的说错了一点,as, is 才是父类子类转换,()操作符可以自定义的。
    楼主的问题很有意思,这里有很长一个故事
    ECMA BCL最先是没有Convert类的,而是static转换
    int i = 10;
    Int32.ToDouble(i)
    然后,他们觉得如果将来代码改变变量i声明,需要的改动很多代码,于是,想到专门一个类处理这个问题。这个思想来源于OLE中的Variant。
    如果说区别,建议是先用(),如果类实现IConvertible,其次用它,最后用Converter。有些语言不支持(),那么只能用Converter类了,例如VB.net中UInt32转换到Int32
      

  4.   

    (destinationType)sourceVar是显式转换,Convert的转换能力更强一些,有时(destinationType)sourceVar方式不能转换的,Convert能行.