我們知道,在C#中,string是引用類型的。為空情況有以下三種: 1、 string str1="":會定義指針(棧),併在記憶體里劃一塊值為空的存儲空間(堆),指針指向這個空間。 2、String str2=String.Empty:同上。但是這是個靜態方法,不會反覆的重覆申請記憶體,要優於1中的方 ...
我們知道,在C#中,string是引用類型的。為空情況有以下三種:
1、 string str1="":會定義指針(棧),併在記憶體里劃一塊值為空的存儲空間(堆),指針指向這個空間。
2、String str2=String.Empty:同上。但是這是個靜態方法,不會反覆的重覆申請記憶體,要優於1中的方式。
3、String str3=null:只定義了一個引用(棧),沒有指向任何地方,也未在堆上分配存儲空間。在使用前如果不實例化的話,將報錯。
知道了string的幾種空類型的區別,那麼我們怎麼來判斷一個字元類型的變數是否為空呢?
對於一個string類型的變數a,你會用哪種方式判斷它為空,一般有以下三種: a == "" a == String.Empty
a.length == 0 那麼,你會用哪種方式判斷?效率上 3 > 2 > 1,也就是a.length == 0 > a == String.Empty > a == ""。
那麼,結論是,賦空字元串請用String.Empty(NULL不能輸出,Empty可以輸出),判斷空字元串請用length。
當然也可以使用系統提供的方法:String.IsNullOrEmpty(“XX”)方法,效率打了點折扣,但是代碼可讀性還是書寫的便利性還是很大的。