属性访问器不能在“NotOverridable”属性中声明为“<accessmodifier>”

NotOverridable 属性中的 Get 语句Set 语句包含 Private 关键字。

以下推理行解释了 NotOverridable 中不可同时包含 PrivateNotOverridable的原因:

  1. 不重写基类属性(或过程)的属性(或过程)具有 NotOverridable这一默认设置。

  2. 但是,对于派生类中重写基类属性(或过程)的属性(或过程),其默认设置为 Overridable。 若要终止重写层次结构,可将其声明为 NotOverridable。 这是唯一可使用 NotOverridable的上下文。 也就是说,你只能将 NotOverridableNotOverridable这一默认设置。

  3. 如果基类属性或过程声明为 Private,则派生类无法访问此属性或过程,因而不能重写它。 因此,不能结合使用 PrivateOverridable

  4. 若要重写属性或过程,则重写的属性或过程必须具有相同签名及相同的访问级别。 这意味着,重写的属性或过程不能指定 Private,因为可重写的属性或过程不能指定 Private

  5. 因为你只可在重写的属性或过程上指定 NotOverridable ,因此不能将其与 Private结合使用。

同理,重写属性的个别属性过程(GetSet)不能为 Private

错误 ID: BC31106

更正此错误

  • 删除 PrivateGet 语句中的 Set 关键字,或者删除 Overrides 语句中的 NotOverridableProperty 关键字。

另请参阅