鉴于以下设计的结构
public struct CarParts
{
public int trunk;
public int door;
}
为什么我会收到一条错误消息“cp可能在使用前未被初始化”但是如果我在静态方法中执行完全相同的操作,则ID无效。还有为什么在我添加静态方法之前它曾用于补充?
public void Test()
{
CarParts cp;
cp.trunk= 1;
cp.door= 4;
}
答案 0 :(得分:2)
我想这与你的问题有关:
使用new运算符创建struct对象时,会创建它并调用相应的构造函数。与类不同,可以在不使用new运算符的情况下实例化结构。如果不使用new,则字段将保持未分配状态,并且在初始化所有字段之前无法使用该对象。