區分空字串和null
阿新 • • 發佈:2018-11-07
核心思想: string.Empty等價於 "" ,但是和null的意義完全不同!
string str = null;
這條語句只是在棧中分配了一個string引用,但是並沒有在堆中分配任何東西;string.Length是錯誤的!它並沒有所謂的長度,丟擲NullReferenceException;
string str = "";
這條語句等效於 string str = string.Empty; 這條語句在堆中也分配了一些東西,只不過str引用指向的字串的長度是零,str.Length = 0;
判斷一個字串引用為空: str == null
判斷一個字串為空字串: str == "" 或 str == string.Empty 或 str.Length == 0;
class Program { static void Main(string[] args) { string str = ""; Console.WriteLine(str.Length); //輸出0 if(str == string.Empty) { Console.WriteLine("OK");//輸出OK } str = null; Console.WriteLine(str.Length); //不會輸出0,丟擲異常 if (str == string.Empty) { Console.WriteLine("OK");//不會輸出OK } Console.Read(); } }