Convert.ToString能處理字符串為null的情況。
static void Main(string[] args){string msg = null;Console.WriteLine(Convert.ToString(msg));Console.ReadKey();}
運行,沒有拋出異常。
ToString方法不能處理字符串為null的情況,會拋出異常。
static void Main(string[] args){string msg = null;//Console.WriteLine(Convert.ToString(msg));Console.WriteLine(msg.ToString());Console.ReadKey();}
可以這麼理解:.ToString()是類自己的字符串類型轉換,並不是所有的類都有tostring的功能
Convert.ToString()是強制類型轉換,不管3721,老子就是要把你的腦袋拍成方的!
C#中沒區別 ToString()的實現還和用Convert實現相同。
至於裝箱,估計樓主多慮了。
1. 兩個不同的類型轉換,一定存在創建目標對象的過程。即創建一個字符串引用。
2. 平提到的裝箱,一般存在於 int 到 Int32時的轉換,但C#中實質Int32是結構體,並非Java中的一個是值類型,一個是包裝類的關系。int只是C#中為Int32提供一個簡易的關鍵字形式出現,編譯為IL後還是以Int32表示。
Int32的定義:
public struct Int32 : IComparable, IFormattable,
IConvertible, IComparable<int>, IEquatable<int>