string是參考型別;
string str = null 沒有建立記憶體空間,str中存放的是Null 參考指標;
string str = "" 建立了記憶體空間,str中存放的是指向堆中的指標。
簡單地說:
string str ="";
給你一張白紙;
string str = null;
連白紙也沒有。
string.Empty就相當於""
一般用於字串的初始化
比如:
string a;
Console.WriteLine(a);//這裡會報錯,因為沒有初始化a
而下面不會報錯:
string a=string.Empty;
Console.WriteLine(a);
或者用於比較:
if(a=="")
if(a==string.Empty)
上面兩句是一樣的效果。
string.Empty不分配儲存空間
""分配一個長度為空白的儲存空間
所以一般用string.Empty
為了以後跨平台,還是用string.empty
在 C# 中,大多數情況下 "" 和 string.Empty 可以互換使用。比如:
string s = "";
string s2 = string.Empty;
if (s == string.Empty) {
//
}
if語句成立
判定為空白字串的幾種寫法,按照效能從高到低的順序是:
s.Length == 0 優於 s == string.Empty 優於 s == ""
您關於String.Empty和Null的問題是這樣的,這兩個都是表示Null 字元串,其中有一個重點是string str1= String.Empty和 string str2=null 的區別,這樣定義後,str1是一個Null 字元串,Null 字元串是一個特殊的字串,只不過這個字串的值為空白,在記憶體中是有準確的指向的,string str2=null,這樣定義後,只是定義了一個string 類的引用,str2並沒有指向任何地方,在使用前如果不執行個體化的話,都將報錯。textBox1.Text的值為零長度字串 ""。