ToString Convert.ToString和(string)区别

精贴 置顶
3347 0

通常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。

-------------------------------------------分界线---------------------------------------------------------

补充:

通常较常用的数据间转换是parse()和toString()

前者是把字符串转成数值,而后者相反。由于toString()是Object中的方法,因此 所有类都会有自己的toString()方法,只是看不同的类是否有重新复写。而你所调用的ToString()方法,是调用示例所属类的ToString()方法。

一般(String)方法,也就是强制转型,是我们明明知道“谁是谁”的时候用到。多出现在继承inheritance的例子中。比如,Dog类继承Animal类,当我们需要upcast或downcast的时候(泛化和聚化)会用到强制转型。因为我们很确定,dog就是animal。而向下转型的时候,比如在一个Array里面,我们要存入一组数据,为了保证所有数据都能够存入我们往往会对这个数组存数数据的类型扩大化,比如都扩大到Animal。而在我们取数据的时候,我们很确定第二个位置就是一个Cat类型的实例,这个时候(也就是DownCast时),我们就回强制转型(Cat)。

强制转型相比Something As String的方法要强烈,如果转型不成功会直接抛出异常,而后者只是返回一个null值。

  • 没有任何评论
今日天气 ···

···

···

···

热门排行
CSS cursor鼠标样式一览表 2012-06-25
.NET后台写JS代码 2011-11-03
网站地址多出jdfwkey的问题解析及... 2010-08-25
数据库xxx的日志已满,请备份该数... 2013-07-19
百度、google、Yahoo网站地图制作... 2011-01-30
<a>标签的伪类书写顺序问题... 2010-09-04
什么是长尾关键词? 2010-09-24
CEO名言 2010-08-31
Mysql 主从数据库同步 2010-09-12
用ASP实现网页BBS 2010-11-01
博主推荐
本个人博客微信公众平台上线啦~~... 2013-10-13
饼哥网络互联上线啦~~要买域名空... 2013-09-20
网站title标题如何正确修改不会被... 2013-08-26
饼哥通讯录系统上线啦,欢迎大家... 2013-08-24
ASP .NET MYSQL 的简单分页 并不... 2013-08-19
网站有弹窗广告这样的站点,百度... 2013-08-17
做淘宝SEO优化需要注意的8大问题 2013-08-17
淘宝网怎么做SEO优化 2013-08-17
站长们要学习的“苍井空精神” 2013-08-17
苹果公司今日发布了iOS 7第五个开... 2013-08-07
随便看看
一句话入门SEO 2010-09-02
asp深入研究Application和Sessio... 2010-10-25
Tencent://Message/协议的实现原... 2010-09-07
用JS获得当前页面详细地址 2013-06-15
域名轰炸 2010-09-21
六项措施,"急救"受损Windows系统 2010-11-09
我的站怎么就不被收录呀? 2010-09-29
一句代码解决IE8兼容问题 2010-10-14
修正IE6的bug的10个技巧 2010-08-31
位运算符 2010-10-18
RSS新闻
传媒新闻
CSDN
八卦新闻
女性新闻
台湾新闻
互联网
军事-新浪博客
IT-新浪博客
汽车新闻
游戏新闻
国际新闻
国内新闻
体育新闻
我的微博
北京 上海 杭州 深圳 广州 成都