1. 程式人生 > >區分空字串和null

區分空字串和null

核心思想: 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(); } }