黑马程序员技术交流社区
标题:
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