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

更新:2007 年 11 月

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

以下几行原因解释了为何 NotOverridable 和 Private 不能同时用在 Property 语句 中:

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

  2. 但是,派生类中重写基类属性或过程的属性或过程具有默认设置 Overridable。要终止重写的层次结构,可以将它声明为 NotOverridable。您只有在此上下文中才能使用 NotOverridable。也就是说,只能将 NotOverridable 与 Overrides 结合使用。

  3. 如果基类属性或过程被声明为 Private (Visual Basic),则派生类会因为无法访问该属性或过程而不能重写它们。因此,不能将 Private 与 Overridable 结合使用。

  4. 要重写某个属性或过程,重写属性或过程不仅要具有相同的签名,还要具有相同的访问级别。这意味着重写属性或过程不能指定 Private,原因是可重写的属性或过程不能指定 Private。

  5. 由于只能在重写属性或过程上指定 NotOverridable,因此,不能将它与 Private 结合使用。

出于相同的原因,重写属性的各个属性过程(Get 和 Set)不能为 Private。

**错误 ID:**BC31106

更正此错误

  • 从 Get 或 Set 语句中移除 Private 关键字,或从 Property 语句中移除 Overrides 和 NotOverridable 关键字。

请参见

任务

如何:声明具有混合访问级别的属性

概念

Property 过程

隐藏和重写之间的差异