Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 结构-可能在使用前未初始化_C#_Struct - Fatal编程技术网

C# 结构-可能在使用前未初始化

C# 结构-可能在使用前未初始化,c#,struct,C#,Struct,给定以下人为结构 public struct CarParts { public int trunk; public int door; } 为什么我会得到一个错误,说“cp在使用之前可能不会被初始化”,但是如果我在静态方法id中做了完全相同的事情,那么这个错误就不起作用了。还有为什么在我添加静态方法之前它总是comple public void Test() { CarParts cp; cp.trunk= 1;

给定以下人为结构

public struct CarParts
{
        public int trunk;
        public int door;
}
为什么我会得到一个错误,说“cp在使用之前可能不会被初始化”,但是如果我在静态方法id中做了完全相同的事情,那么这个错误就不起作用了。还有为什么在我添加静态方法之前它总是comple

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

我想这与你的问题有关:

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


我猜对语言了吗?当你想讨论你的实际代码时,你真的应该用你正在使用的语言来标记。请显示失败的代码。您发布的代码本身不会失败。注意1:在初始化所有字段之前,您不能指定属性(甚至自动属性)。注2:可变结构是邪恶的。注3:公共实例字段通常是错误的样式,这就是问题所在,在返回之前没有设置其中一个字段,因为我在结构中添加了另一个字段。谢谢