C#中,string str = null 与 string str =""有什么区别,请详细解释一下!

解决方案 »

  1.   

    string str = null 不分配内存。 string str ="" 分配字节为0的内存。
      

  2.   

    Null 是没有的意思 不占用内存空间 
    ""是空的字符串 它是一个字符串,不过里面没有内容
      

  3.   

    null 没分配内存空间,
    ""分配内存空间
      

  4.   

    str=null;//对象不存在
    str="";//对象存在了,只不过字串值为空
      

  5.   

    string str ="" 分配字节为0的内存
    ------------------------------
    有点不准确,应该说是分配长度为0的字符串,内存占用不可能是0得
      

  6.   

    string str = null 这种初始化方式并不规范最好可以使用以下写法
    string str=String.Empty;
    string str=defalut(String);
      

  7.   

    null是没有分配内存  ""是分配的长度为0的内存
      

  8.   

    谢谢各位!
    string str = null 不给他分配内存空间,
    string str = "" 给它分配长度为空的字符串的内存空间
      

  9.   

    ""和String.Empty是一个概念表示一个空字符串,null表示为空没有内存
      

  10.   

    Null 是没有的意思 不占用内存空间 
    ""是空的字符串 它是一个字符串,不过里面没有内容
      

  11.   

    str=null 不占用内存,str="",该对象存在,只不过字符串值为空。
      

  12.   

    string 本身是一个引型类型,只是这个引用类型比较特殊str = null  是把引型类型的对象,设为null
    str = ""    是把string 对象的值设置为空一般建议使用  string strTmp = string.Empty;
      

  13.   

    string = nul 只是在堆上分了引用地址,但是托管堆上是空的。string = "" 两者都分配了,只是堆上的内容是"",自己理解的,
      

  14.   

    晕,字符敲错。
    string = null 只是在堆栈上分了引用地址,但是托管堆上是空的。string = "" 两者都分配了,只是堆上的内容是"",所以string = null是没有任何指向任何对象的,是个空对象。
      

  15.   

    str=null;//对象不存在
    str="";//对象存在了,只不过字串值为空
      

  16.   

    string str = null; //表示没有为对象分配内存,
    string str = string.Empty 等价于 str = "" ;//表示为对象分配了内存,但值为空
      

  17.   

    不过我还是想插一句 不要把NET 的C# 这种超高级语言 拿C++中级语言的指针思想来看问题。
    实属没有意义。
    string是 netFramework的内置类型 其优化方式本身就不符合类的一些规则。
      

  18.   


    Setting it equal to an empty string, represented by two consecutive double quote
    s:
        string s = "";Setting it equal to the reserved word null, which is the "zero equivalent" value for the
    string type (and, as you'll learn later on, for reference types/objects in general):
        string s = null;
      

  19.   

    string stu = null,即没分配内存,可以说什么都没有。
    而 string stu = "" ,有值,但是空值。
      

  20.   

    null,表示这个抽屉根本不存在,
    "",表示抽屉存在,只不过抽屉里面啥没有。
      

  21.   

    string str=null;的实质是 char *ps = 0;
    string str="";  的实质是 char *ps=""; 或 char *ps="\0";
    也就是说
    string str=null;表示str是一个为0的指针。不分配任何内存空间。
    string str="";  表示str指向首元素为0(字符串结束标志)的字符数组。会分配内存空间,但是该内存空间的首位为0。
      

  22.   

    简单的说呢就是""和null的区别
    复杂的说呢见楼上各位。
      

  23.   

    那string.Empty和""有区别吗?
      

  24.   

    string.Empty和“”
    是相等的。
    你可以测试string.Empty.Equals("")和string.Empty.Equals(null)
      

  25.   

    string str = null 不分配内存。 
    string str ="" 分配字节为0的内存。
    这年头笔试都喜欢来这个
      

  26.   

    null没有分配内存,也就是没有调用过构造函数
    str=""也等价与str.length=0;
      

  27.   

    string str = null 是不给他分配内存空间,
    string str = "" 给它分配长度为空字符串的内存空间.
      

  28.   

    string = null 和 其它的类对象 = null 一个意思,都表示,引用为空,对象没有实例string = "" 表示,已经有实例了,不过这个实例是空字符串而已
      

  29.   

    string   stu   =   null,即没分配内存
    string   stu   =   " "   ,有值,长度为0,但是空值
      

  30.   

    大家都会的问题啊 !
    我前几天做的时候用这个了!
    string str=null
    取str.length的时候就对象未设置成引用的实例
    string str=""的时候str.length==0了  
      

  31.   

    使用string类型赋空值的时候用
    string s = string.Empty;
    Empty是String类的静态方法,就意味这不会反复申请内存用Microsoft FxCop软件检测 string s = ""; 是个警告吧,说明这个方法不好;string s = null; //将s指向空,和object obj = null是同个意思,Object是所有类的父类
      

  32.   

    string   str   = " "是长度为1的字符串,内容是一个空格
      

  33.   

    string.IsNullOrEmpty --> null == IsNull ; ""==IsEmpty
      

  34.   

    string str = null 是不给他分配内存空间, 
    string str = "" 给它分配长度为空字符串的内存空间.
      

  35.   

    msdn官方例子总是string s = "";分配一个\0的东西就是为了指向别的字符串然后抛弃吗