Compiler Error CS0188
在给“this”对象的所有字段赋值之前,无法使用该对象
构造函数必须给 struct 中的所有字段都赋值,然后才能调用 struct 中的方法。
如果在尝试初始化结构构造函数中的属性时看到此错误,则解决方案将更改此构造函数参数以指定支持字段而不指定该属性本身。由于自动实现的属性不具有支持字段,因此在任何情况下都不可能从构造函数进行初始化,从而应在结构中避免使用自动实现的属性。
有关更多信息,请参见使用结构(C# 编程指南)。
下面的示例生成 CS0188:
// CS0188.cs
// compile with: /t:library
namespace MyNamespace
{
class MyClass
{
struct S
{
public int a;
void MyMethod()
{
}
S(int i)
{
// a = i;
MyMethod(); // CS0188
}
}
public static void Main()
{ }
}
}