字符串赋值为null和Empty和“”有什么区别?

解决方案 »

  1.   

    null表示什么也没有,空对象Empty表示空字符串,与""是一样的。但是null和Empty是不一样的,是两个不同的东西。
      

  2.   

    Empty和""没区别.
    反编译System.String.Empty你会看到它就是""
    至于null.
    你试试
    string a = null;
    Console.WriteLine (a.Length);
    就知道有啥区别了.
      

  3.   

    string a=null的话,只会在栈中保存一个字符串类型的指针,但是该指针不只向任何堆中的字符串。
    string a=string.Empty, 除了会在栈中保存一个字符串类型的指针之外,该指针指向堆中的字符串数据,即空字符串,这个和string a= "";是一样的。
      

  4.   

    一个是木有小JJ一个是有小jj, 不过长度为0.
      

  5.   

    null表示什么也没有,空对象Empty表示空字符串,与""是一样的。但是null和Empty是不一样的,是两个不同的东西。
    string a=null的话,只会在栈中保存一个字符串类型的指针,但是该指针不只向任何堆中的字符串。
    string a=string.Empty, 除了会在栈中保存一个字符串类型的指针之外,该指针指向堆中的字符串数据,即空字符串,这个和string a= "";是一样的。
      

  6.   

    一个放在堆里
    一个放栈里
    string a=null的话,只会在栈中保存一个字符串类型的指针,但是该指针不只向任何堆中的字符串。
    string a=string.Empty, 除了会在栈中保存一个字符串类型的指针之外,该指针指向堆中的字符串数据,即空字符串,这个和string a= "";
      

  7.   

    恩。一般这样判断string.IsNullOrEmpty(s)
      

  8.   

     null不会分配内存  ""会分配
      

  9.   

    MSDN:
    The Null keyword is used to indicate that a variable contains no valid data. This is not the same thing as Empty.
    Null指向一个未指定任何字符串的指针The Empty keyword is used to indicate an uninitialized variable value. This is not the same thing as Null.Empty指向一个已初始化的指针
      

  10.   


          string a = null; 
          string b = string.Empty;
         
          bool flag = a is string;// false a 不是字符串类型
          flag = b is string; // true b 是字符串类型
      

  11.   


    null没有指针只想堆   “”有指针指向堆
      

  12.   

    NULL就是不指向任何地址,是个空的
    Empty是指向的字符串是个空字符串
      

  13.   

    小jj是的解释有问题,这个示例和注释也是错的...“木有小jj”的前提是必须是“男性”,类型已经是确定的...而is运算返回false不是因为a不是字符串类型,而是因为a未实例化...
      

  14.   

    string str=null不分配内存 
    string str= string.Empty;分配字节为0的内存  
      

  15.   


    哈哈,狗狗的解释不通。“木有小jj”的前提应该是“人”这种类型。这样解释才比较合理. null  是女生
     正常的 是男性 
     ""     是太监
      

  16.   

    在php中这几个判断很重要,有时候判断不规范很可能导致网站存在漏洞bug,还可能有安全问题,我之前专门做的测试,详细区分了null和Empty和"" 还有 0 的区别http://www.oophper.com/blog/?p=5。希望对你有帮助的。
      

  17.   

    学习学习一下,Mark一下                            
      

  18.   

    一个是木有小JJ------------------------null---------女生一个是有小jj, 不过长度为0.-------------Empty--------太监
    从生理学角度讲是错误的,太监是木有蛋蛋,和小jj无关。生理课上讨论吧!
      

  19.   

    null不分配内存,“”分配了个为空的字节,用起来没区别
      

  20.   

    string str1 = null ;          //它只在栈中保存一个字符串类型的指针,但它不指向任何堆中的对象
    string str2 = string.Empty ;
    //在栈中保存一个字符串对象的指针,它指向堆中一个长度为0的字符串对象,即""
    你可以试着分别"Console.WriteLine (str1.Length);” 和 "Console.WriteLine (str1.Length);",
    前者报空指针异常,后者运行通过。
      

  21.   

    笔误,后者是str2
    你可以试着分别"Console.WriteLine (str1.Length);” 和 "Console.WriteLine (str2.Length);",
    前者报空指针异常,后者运行通过。