听起来是不是觉得奇怪.竟然定义不了.是的.我就觉得奇怪
我在一个方法
public void EptInformation()
        {
            string str;
            string hostName;
            string eptName;
            string eptAddress;
            string eptTell;
            ....
        }
结果,我用鼠标指向str的时候为null
而用鼠标指向其他4个的时候,不会提示null,然后我选择快速监视却提示"当前上下文中不存在名称"hostName";
为什么呢?

解决方案 »

  1.   

    string str =  new String()
    c#非基本类型都是引用类型的,所以必须显式new
      

  2.   

    局部变量,你断点还没有到hostName当然提示不存在。
    埃里克这个名字,唉!
      

  3.   

    如果你断点在 string str;这里的话,本来就是这样的
      

  4.   

    可能是编译器的事,把不赋值认定成null了
    你再从新写一遍看看,这里你要初始化变量。
      

  5.   

    断点设置到string eptTell;之下
      

  6.   

    string 是引用类型,最好new或初始值
      

  7.   

    C#中的对象必须new一下,少数不能用new
    但基本类型就一定要new一下啦或赋值了.
      

  8.   

    不初始化也应该定义成功的,只是显示null而已。12l说得有理,应该是设置的问题。
      

  9.   

    Essential 。net volumn 1
      

  10.   

    听着的确象个新手。我觉得,你的重点应该先放在程序运行的部分是否出错,而不是定义的部分。如果运行到某一个方法出错,而原因是你的变量为Null,那么,就是初始值的问题;如果你运行到某一个方法出错,而原因是变量未定义,就检查一下拼写。我觉得,你的这个问题,前面的回答已经足够了。1.对象变量是没有初值的,必然是NULL;
    2.未执行声明语句前,变量当然是不存在的。
      

  11.   

    `` 字符串是引用型````` `需要先给个默认的string.empty````然后才可以使用`````
      

  12.   

    string s = string.Empty;
    这样是最好的定义字符串的方法
      

  13.   

    我试过,都为null,同学你在试试吧!
      

  14.   

    看lz连基本的c基础都没有
      

  15.   


    强烈建议
    string str = string.Empty;
    OR
    string str = "";
    再次强烈建议:
    int num = 0;
      

  16.   

    记得C#不允许使用未初始化的局部变量 先初始化为空 。string str= "";
      

  17.   

    记得C#不允许使用未初始化的局部变量 先初始化为空 。string str= "";
      

  18.   

    C#字符串变量不初始化也是可以的,但是未初始化的变量为空,值类型为0。如果要定义字符串,下面的代码比较地道:String str1 = String.Empty;
      

  19.   

    晕,这样的问题竟然放到了CSDN的首页,开始怀疑CSDN那些老编了
      

  20.   

    注意区分object与object reference