日期:2014-05-18  浏览次数:20932 次

c# Convert.ToString 与 .ToString() 有什么区别?
请各位指教!!

------解决方案--------------------
Convert.ToString() 把Object转换成String对象。
可以把DBNull/Null转化为String.Empty

Object.ToString() 是从Object里继承来的方法。对于空引用和DBNull的对象直接调用.ToString()会引发异常。
------解决方案--------------------
Convert.ToString 

是指把某某类型转化成string.
比如byte[]的反序列化.

tostring()
是基类的函数.
可能被重写,但很多时候含义不一样.


------解决方案--------------------
up
------解决方案--------------------
后一个是通过object.ToString()方法转换成字符串

前一个是对上面这种方法的一个包装,提供一种统一的静态方法,事实上内部还是调用上面那个.ToString()
------解决方案--------------------
探讨
Convert.ToString() 把Object转换成String对象。
可以把DBNull/Null转化为String.Empty

Object.ToString() 是从Object里继承来的方法。对于空引用和DBNull的对象直接调用.ToString()会引发异常。

------解决方案--------------------
探讨
Convert.ToString() 把Object转换成String对象。
可以把DBNull/Null转化为String.Empty

Object.ToString() 是从Object里继承来的方法。对于空引用和DBNull的对象直接调用.ToString()会引发异常。

------解决方案--------------------
C# code

//Convet中的ToString方法
public static string ToString(int value)
{
    return value.ToString(); //调用int的ToString方法
}

//int32的ToString方法1
public override string ToString()
{
    return this.ToString(null, null);
}

//int32的ToString方法2
public string ToString(string format, IFormatProvider provider)
{
    return Number.FormatInt32(this.m_value, format, NumberFormatInfo.GetInstance(provider));
}

------解决方案--------------------
多谢LGame的指正。DBNull.Value.ToString()的确没有异常发生。

但是我认为使用Convert.ToString()不需要判断是否是null。

楼主问的Convert.ToString 和 .ToString()的区别,不是说用哪一个更好的说。

各有各的使用的场合。
------解决方案--------------------
你试着运行一下下面的代码就知道了
C# code
            object v = null;
            Console.WriteLine(Convert.ToString(v));
            Console.WriteLine(v.ToString());

------解决方案--------------------
以后需再关注,现在先帮你顶一下