C#中的Convert.ToString()和.ToString()有什么区别?
当我尝试使用ToString()将dataRow[i]
转换为字符串时,我收到错误。我该如何解决这个问题?
答案 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。
答案 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将抛出错误