1.NULL
string str2=null
定義了一個string 類的引用,會在棧上保存一個地址,這個地址也佔4字節,但是這個地址是沒有明確指向的,它哪也不指,在使用前如果不實例化的話,都將報錯。
null 是引用類型變量的默認值。那麼也只有引用型的變量可以爲NULL,如果 int i=null,的話,是不可以的,因爲Int是值類型的。
2.""
string str1=""
str1是一個空字符串,空字符串是一個特殊的字符串,只不過這個字符串的值爲空,在內存中是有準確的指向的,
3.String.Empty
當你只定義一個str而不爲其分配內存時用string str=null,但是在接下來你使用它之前必須爲它賦值如str=“xxxx”也就是爲它初始化,不然程序運行時可能會引發空指針異常而string str= string.Empty是定義和初始化放在了一起它實際是等價於string str=null;str="";具體使用時,如果你確定在使用前會給str賦值就用string str=null,否則用string str= string.Empty用String.Empty表示空字符串,不要用””。String.Empty的定義爲public
static readonly string Empty,編譯時會轉化成””