string a = null;

string a;
是一样的。指向一个空引用

解决方案 »

  1.   

    string a;if (a==null){}上面这段话不行,会提示a未赋值。string a和string a=null会一样?
      

  2.   

    string a=null 给a分配了空间,空间里的内容是空的;
    string a 给a分配空间,空间里的内容是随机的,有内容,a的值是随机的,编译系统为了避免出错,所以给出警告提示。
    你可以用F10分步执行,看a的值。
      

  3.   

    在程序就绪的状态下按F10编译,按一下F10就执行一步,执行到string a的时候把光标放到a上,就会显示它的值。
      

  4.   

    string  str="",表示一个空串,被实列化了,占用了内存空间,   
    string  str=null,表示一个空引用,并没有指向任何地方,没有占用了空间,   
    string  str 或string.empty.因为C#里边你不初始化的话会有一个默认值。
      

  5.   

    6L的意思是让你执行程序,在出错的地方设置断点看看这个值,也就是if (a==null)设置断点
      

  6.   

       是那样的吗?if (a==null)应改为:if(ReferenceEquals(a,null))