struct - 在使用之前可能未初始化

时间:2010-12-04 21:05:15

标签: c# struct

鉴于以下设计的结构

public struct CarParts
{
        public int trunk;
        public int door;
}

为什么我会收到一条错误消息“cp可能在使用前未被初始化”但是如果我在静态方法中执行完全相同的操作,则ID无效。还有为什么在我添加静态方法之前它曾用于补充?

public void Test()
{
            CarParts cp;
            cp.trunk= 1;
            cp.door= 4;
}

1 个答案:

答案 0 :(得分:2)

我想这与你的问题有关:

  

使用new运算符创建struct对象时,会创建它并调用相应的构造函数。与类不同,可以在不使用new运算符的情况下实例化结构。如果不使用new,则字段将保持未分配状态,并且在初始化所有字段之前无法使用该对象。