对于内建类型比如string数据成员:class Test{
    public string _str;
    public Test() { _str = "str"; }
}在执行默认构造函数前,C#会先将_str初始化成空么?

解决方案 »

  1.   

    也就是创建了两个string, 一次是空,另一次才是"str"?
      

  2.   

    初始化为空,_str = "str"; 会创建一个新的,重新开辟空间
      

  3.   

    我说的"空"就是"空字符串"(""),这样的话内建类型放到构造函数里岂不是初始化了两次,
    看来还是在定义时直接初始化效率高点啊,不过我用vs2008单步跟踪了一下,
    _str显示初始化时比如public string _str = "sdfsdfsd"; 确实两次。
    但当public string _str;时这条语句被跳过去了,这也比较符合常理