核心思想: 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(); } }
原文地址:https://www.cnblogs.com/maoshuyi/p/9922467.html
时间: 2024-10-02 18:51:06