C#中 NULL 、String.Empty 、""的區別

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,編譯時會轉化成””

 

發佈了88 篇原創文章 · 獲贊 16 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章