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

时间:2011-09-03 05:10:31

标签: c# ado.net

  

可能重复:
  variable.ToString() vs. Convert.ToString(variable)

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

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

4 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:8)

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

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/

答案 2 :(得分:8)

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

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

答案 3 :(得分:1)

Convert.ToString和.Tostring之间存在一个基本的不同。 Convert.ToString将处理Null异常但.Tostring将抛出错误