null和String.Empty的区别是什么
是不是二者可以完全替代请详细说明,谢谢!!!

解决方案 »

  1.   

    完全不可以替代,就不是一个东西。null是空引用,string.Empty是空字符串
      

  2.   

    String.Empty  和 “” 一样  是指字符串  String.Empty不从新分配内存空间  string aaa="" 重新分配内存空间
    null 与 完全不一样
      

  3.   

    要做判断可以用string.isnullEmpty()
      

  4.   

    不可以替代
    null是空引用
    string.Empty是空字符串
      

  5.   

    不一样,比如说你定义一个 string strEmp = "" 和一个string strNull = null .你可以调用strEmp的方法,如strEmp.Trim(); 但如果用strNull调用Trim()方法就会报错,因为strNull没有实例化,还不是对象,没有对象怎么会有方法呢
      

  6.   

    完全两码事,
    null:是空引用,对于一个引用类型而言,只在栈中为其分配一小块内存,但不指向堆,压根就不知道指向哪(就像没人要的野孩子)
    String.Empty :是空字符串,指向堆中某一块区域,但是这个堆中的内容是空字符串,神马内容都没有(这个孩子家里就它一个了,没有其它任何人了)两者根本不能等同.
      

  7.   

    DBNull.value:数据库中的未初始化值
    string.Empty:空字符串
    null:空引用
      

  8.   

    if(TextBox1.Text ==string.Empty )与if(TextBox1.Text ==null)那效果是一样的吧
    ,我试过,后者没有报错
    是不是一样的?
      

  9.   

    不一样...TextBox.Text天然不可能为null,当然没错...但是逻辑是错的,TextBox1.Text==null恒为true...
      

  10.   

    TextBox1.Text==null恒为false...更正一下...
      

  11.   

    null是空引用,对象是不存在的。
    string.Empty 对象存在,是空字符串
      

  12.   

          最直接的:
          Empty不分配存储空间
          NULL分配一个长度为空的存储空间   
          一般用string.Empty
      

  13.   

    不过貌似string一般声明除非定义成null不然默认都是""的吧
      

  14.   

    所有引用类型的初始值都为null还是string.Empty 还是""    ??
      

  15.   

    所有引用类型实例的初始值都为null,包括字符串...字符串也是引用类型...再重复一次:赋null值不分配任何内存,实例在栈上为引用分配的内存是另一码事...赋string.Empty值就是赋""值,""是常量,string.Empty是预定义的只读变量,指向字符串常量""...string.Empty就是""...
      

  16.   

    一个是内存上null
    一个是字节为空
      

  17.   

    这样说吧,
    string temp = "a";
    上面的意思是这样的:
    1、在堆中创建一个对象 temp
    2、在栈中开辟一块空间存放引用,
    3、再到string池中放一个“a”;
    4、最后通过引用把对象temp与池中的值“a”连接起来,那么temp的值就是"a"了然而 string temp = null;
    表示
    1、在堆中创建一个对象 temp
    2、引用为空 ,可以理解为没有为对象分配 引用;
    3、也没有分配值(当然,根本 不用分配值,因为没有引用,就不知道指向常量池中的哪个值)string temp = string.Empty;
    1、在堆中创建一个对象 temp
    2、在栈中开辟一块空间存放引用,
    3、通过引用 指向 常量池中一个空的值;希望LZ能够理解
      

  18.   

    null 是空(引用),“无效的”
    string.Empty是指向系统预定义的常量,这里的“指向”是指在内存栈上会有一个引用,效果同""是一样
    string s = null, str = string.Empty;
    s.Length  //抛空引用异常
    str.Length  //结果返回0