编译器错误 CS0843

在控制返回到调用程序之前,自动实现的属性“name”的支持字段必须完全赋值。 请考虑从构造函数初始值设定项中调用默认构造函数。

若要从构造函数中为自动实现的属性赋值,必须首先调用默认构造函数以创建对象。

更正此错误

  • 在构造函数初始值设定项中添加对默认构造函数的调用,如以下示例中所示。 请注意 : this() 的使用。 有关更多信息,请参见 this(C# 参考)

示例

下面的代码将生成 CS0843:

// cs0843.cs
struct S
{
    public int AIProp { get; set; }
    public S(int i){} //CS0843
    // Try the following lines instead.
   // public S(int i) : this()
   // {
   //     AIProp = i;
   // }
}

class Test
{
    static int Main()
    {
        return 1;
    }
}