码迷,mamicode.com
首页 > 其他好文 > 详细

区分空字符串和null

时间:2018-11-07 15:31:35      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:ogr   exception   code   []   except   ring   完全   style   bsp   

核心思想: 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

标签:ogr   exception   code   []   except   ring   完全   style   bsp   

原文地址:https://www.cnblogs.com/maoshuyi/p/9922467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!