黑马程序员技术交流社区

标题: string问题 [打印本页]

作者: 唐兰文    时间: 2012-8-2 20:23
标题: string问题
请问a1.toString和convert.tostring(a1)区别?
作者: 李帅    时间: 2012-8-2 22:07
相同点两者是把对象转成string类型。

不同点就是如果当对象为null时,如a1是null的话    a1.ToString()会抛出NullReferenceException异常,convert.toString(a1)就不会,直接返回一个null。
作者: 飞翔的33    时间: 2012-8-3 07:38
a1.ToString()是调用a1的ToString()方法,a1本身转换成字符串,如果a1为null,我们调用a1的方法就会报异常。Convert.ToString()是调用Convert类的ToString()方法,在里面会判断需要转换的对象是否为null,如果是null就会返回null值,如果不是,就会调用对象的ToString()方法
作者: 彭书雄    时间: 2012-8-3 13:02
ToSting 方法是直接将对象转换为 字符串 如果对象为空 则出现异常      
Convert.ToString() 这个类里面的方法会判断对象是不是为空 为空就返回空
作者: 黑马—代忠    时间: 2012-8-4 08:40
区别:

1、代码大小上Convert.ToStrint()比ToString()小

2、加载数据上Convert.ToString()加载变量本身(IL_0003: ldloc.0),ToString()加载变量地址(IL_0003: ldloca.s   i)

3、方法调用上Convert.ToString()调用的是静态方法,而ToString()调用的是实例化的方法

Convert.ToString():IL_0004: call       string [mscorlib]System.Convert::ToString(int32)

ToString():IL_0005: call       instance string [mscorlib]System.Int32::ToString()

使用时如果转换null值则ToString()会抛NullReferenceException 而Convert.ToString()则会返回空字符串,据体使用哪个好,目前倾向于Convert.ToStrint(),具体情况具体分析
作者: 郭张浩    时间: 2012-8-5 16:17
我总结下:
1. 可转换类型的不同
Convert.ToInt32()几乎可以把各种类型(包括object 引用类型)的值转换为int类型。
int.Parse()只能转化string。
2. 对null的处理
Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。
3.       对浮点数的处理
Convert.ToInt32(double value)
如果 value 为两个整数中间的数字,则返回二者中的偶数;即3.5转换为4,4.5 转换为4,而5.5转换为6。不过4.6可以转换为5,4.4转换为4
int.Parse("4.5")
运行的时候报错:"输入字符串的格式不正确".
4性能方面
差别不大
作者: 赵令    时间: 2012-8-5 17:47
ToSting 方法是直接将对象转换为字符串  对象为空则出现异常 a1.toString   这里a1不能为空
Convert.ToString() 方法会判断对象是不是为空,为空就返回null convert.tostring(a1)  这里a1可以为空




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2