更新:2007 年 11 月
NotOverridable 属性中的 Get 语句 或 Set 语句 (Visual Basic) 包含 Private 关键字。
以下几行原因解释了为何 NotOverridable 和 Private 不能同时用在 Property 语句 中:
不重写基类属性或过程的属性或过程具有默认设置 NotOverridable。
但是,派生类中重写基类属性或过程的属性或过程具有默认设置 Overridable。要终止重写的层次结构,可以将它声明为 NotOverridable。您只有在此上下文中才能使用 NotOverridable。也就是说,只能将 NotOverridable 与 Overrides 结合使用。
如果基类属性或过程被声明为 Private (Visual Basic),则派生类会因为无法访问该属性或过程而不能重写它们。因此,不能将 Private 与 Overridable 结合使用。
要重写某个属性或过程,重写属性或过程不仅要具有相同的签名,还要具有相同的访问级别。这意味着重写属性或过程不能指定 Private,原因是可重写的属性或过程不能指定 Private。
由于只能在重写属性或过程上指定 NotOverridable,因此,不能将它与 Private 结合使用。
出于相同的原因,重写属性的各个属性过程(Get 和 Set)不能为 Private。
**错误 ID:**BC31106
更正此错误
- 从 Get 或 Set 语句中移除 Private 关键字,或从 Property 语句中移除 Overrides 和 NotOverridable 关键字。