ToString Convert.ToString和(string)区别

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值