区分空字符串和null
Posted maoshuyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区分空字符串和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(); } }
以上是关于区分空字符串和null的主要内容,如果未能解决你的问题,请参考以下文章