C#中Convert.ToString()和.ToString()之间的区别?

SUJ*_*EET 8 c# ado.net

可能重复:
variable.ToString()与Convert.ToString(变量)

C#中的Convert.ToString()和.ToString()有什么区别?

当我尝试dataRow[i]使用ToString()转换为字符串时,我收到一个错误.我该如何解决?

小智 16

基本上两者都用于将值转换为String,但它们之间存在基本差异:

当我们有一个NULL对象时,Convert.ToString(Object);处理NULL值Object.ToString();而不处理NULL值,它抛出NULL引用异常.


kle*_*had 8

他们之间有一个简单但重要的区别......

当对象为null时,ToString()引发异常

因此,对于object.ToString(),如果object为null,则会引发NullReferenceException.

Convert.ToString()在null对象的情况下返回string.Empty

(string)cast在null的情况下分配对象

所以在MyObject的情况下o =(string)NullObject;

但是当你使用o来访问任何属性时,它会引发NullReferenceException.

http://maniish.wordpress.com/2007/10/08/difference-between-tostring-vs-converttostring-vs-string-cast/


Jon*_*son 8

首先,Object.ToString()是基类Object中的虚函数.任何类都可以重写ToString()以提供自己的实现.Convert.ToString()是一个静态方法,它尝试获取许多不同的参数并将它们转换为有意义的字符串.此外,如果调用它的对象为null,Object.ToString()将失败.

此外,Object.ToString()并不总是将对象转换为您可能期望的字符串形式.例如,基函数Object.ToString()将始终返回对象的完全限定类型名称.任何类都可以实现ToString()但是它希望并且这不一定是有意义的东西.