1.错误 14 “XX”必须声明主体,因为它未标记为 abstract 或extern
原因很简单。因为自动实现属性在编译时会被生成如下代码。
public string Foo { get; set; }
=
private string _Foo;
public string Foo { get { return this._Foo; } set { this._Foo = value; } }
如果自动完成属性只有 Get,那么它怎么被赋值?也就是说,您可能希望通过一个 get 声明一个只读的属性,但,这个只读属性没有 set 也就不能赋值。
编译器为我们声明了字段来存储自动完成属性,但在设计时没法直接操作这个字段。因此,自动完成属性必须具备 get 和 set,如果希望只读,则可以用 get; private set; 试试。