黑马程序员技术交流社区
标题:
ToString() 和 as string 的区别
[打印本页]
作者:
/fendou
时间:
2014-5-27 15:41
标题:
ToString() 和 as string 的区别
本帖最后由 /fendou 于 2014-5-27 20:07 编辑
object objFlow = SQLHelper.ExecuteScalar();string strFlow = objFlow.ToString();
可以获取值 是 111.54
string strFlow = SQLHelper.ExecuteScalar() as string;
转换出来 是 null
帮忙解释下 Object.ToString() 和 Object as string 的区别 谢谢了
作者:
方杰斌
时间:
2014-5-27 16:01
Convert.ToString((object)null) == ""
Convert.ToString(null)== null
通常 object 到 string 有四种方式(假设有object obj):obj.ToString()、Convert.ToString()
、(string)obj、obj as string。他们都能将 object 对象转换成 string 对象。我就讲讲他们的
异同以及在实际中应该使用哪个。
前两个方法通常是由别的对象得到 string 对象,它们间的区别只表现在要转换的对象为 null 时
,如果 obj 为 null,调用 obj.ToString 方法会导致 NullReferenceException 异常,调用
Convert.ToString 不会抛出异常而返回一个 null。
用强制转换 (string)obj 要求 obj 的运行时类型必须是 string。如果不是,就会抛出异常。
用 as 方法则会相对平稳,当 obj 的运行时类型不是 string 时会返回 null 而不抛出异常。
所以在通常在我们需要得到某个对象的 string 表达形式时,我们应该使用 ToString 和
Convert.ToString,这时候你就得根据情形选一个,假如你能保证你的对象不为 null,则两个差不
多。如果有可能为 null,你就应该用 Convert.ToString,如果你希望它为 null 的时候抛出异常
,那么当然可以选择 ToString。
作者:
林枫
时间:
2014-5-27 19:11
楼上答得好,受教了
作者:
天道酬勤_||淡腾
时间:
2014-5-27 19:41
虽然看不太懂 正在学习中
作者:
/fendou
时间:
2014-5-27 20:07
谢谢 二楼!明白了 呵呵
作者:
/fendou
时间:
2014-5-27 20:09
其实 as 是不是就是表示类型之间的转换呢!只有可以转换成string类型的可以使用as 不知道这样说对不对哦 呵呵
作者:
嘴角上揚ぃ读不
时间:
2014-5-27 20:40
好好学习下,二楼回答的很好
作者:
劇情侢媄終究媞
时间:
2014-5-27 22:15
个人理解 Object.ToString()是直接将一个对象转换成为字符串,没有判断的成分 而 Object as string带有一重判断的成分
作者:
azve
时间:
2014-5-31 11:57
obj as string 和 (string)obj 是一个意思 就是拆箱的过程,必须保证obj是一个string类型
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2