黑马程序员技术交流社区

标题: C#中类型转为字符串方法的差异 [打印本页]

作者: 李后量    时间: 2012-9-16 12:39
标题: C#中类型转为字符串方法的差异
本帖最后由 李后量 于 2012-9-16 16:21 编辑

通常object到string有四种方式:(假设有object obj)obj.ToString,Convert.ToString(obj),(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而不抛出异常;如果obj为Null则返回"",也不会抛出异常。


所以在通常在我们需要得到某个对象的string表达形式时,我们应该使用ToString和Convert.ToString,这时候你就得根据情形选一个,假如你能保证你的对象不为null,则两个差不多。如果有可能为null,你就应该用Convert.ToString,如果你希望它为null的时候抛出异常,那么当然可以选择.ToString。


作者: 许庭洲    时间: 2012-9-16 14:08
值得学习ing!




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