大家好: 我们都知道在c#中数据类型转换,举例说明下:
Convert.ToInt32(参数),括号中的参数,可以是很多类型,例如string,int ,double,decimal,object等类型,一共重载了19个方法。
在这些重载的类型中,既然有了object类型,为什么还需要重载string,int,float等类型呢。 string,int,float等类型,应该都是从object继承过来了,所以写一个参数为object的方法就可以了,为什么要重载19个方法呢,请教大家帮我解释下,谢谢~!!!
Convert.ToInt32(参数),括号中的参数,可以是很多类型,例如string,int ,double,decimal,object等类型,一共重载了19个方法。
在这些重载的类型中,既然有了object类型,为什么还需要重载string,int,float等类型呢。 string,int,float等类型,应该都是从object继承过来了,所以写一个参数为object的方法就可以了,为什么要重载19个方法呢,请教大家帮我解释下,谢谢~!!!
我做过实验,用List<T>和ArrayList。后者就是object类型,每次都要装拆箱。效率是List<T>三分之一
2、是为了实现不同在转换方式
以Convert.ToInt32(string)和Convert.ToInt32(Char)为例:
Convert.ToInt32(string):返回值是对 value 调用 Int32.Parse 方法的结果
Convert.ToInt32(Char):返回值是 value 参数的 UTF-16 编码码位比如我们有一个字母a
用Convert.ToInt32("a")结果肯定是错误的
而用Convert.ToInt32('a')则可以返回97从这点可以看出,不同的重载对于实现方式是不一样的。Convert.ToInt32(bool):返回值:value 为 true,则为数字 1;否则,为 0
如果只写一个Convert.ToInt32(object)的话,可以就要做大量的判断。不如方法重载来得快,来得明显。