Shadows (Visual Basic)

指定已声明的编程元素重新声明并隐藏基类中的同名元素或重载元素集。

备注

隐藏(又称为按名称隐藏)的主要目的是保护类成员的定义。 基类可能会经历这样的变化:用您已经定义的相同名称创建元素。 如果发生这种变化,Shadows 修饰符就会通过您的类强制引用被解析为您定义的成员,而不是解析为新的基类元素。

隐藏和重写均重新定义继承的元素,但是两种方法之间存在重大差异。 有关更多信息,请参见 Visual Basic 中的隐藏

规则

  • **声明上下文。**只能在类级使用 Shadows。 这意味着 Shadows 元素的声明上下文必须是类,不能是源文件、命名空间、接口、模块、结构或过程。

    在单个声明语句中只能声明一个隐藏元素。

  • **组合修饰符。**不能在同一个声明中同时指定 Shadows 与 Overloads、Overrides 或 Static。

  • **元素类型。**可以用其他任何类型的元素来隐藏任何类型的被声明元素。 如果用其他过程或属性隐藏某个属性或过程,则参数和返回类型不必非要与基类属性或过程中的参数和返回类型匹配。

  • **访问。**基类中隐藏的元素在隐藏它的派生类中通常不可用。 但是,以下注意事项仍是适用的:

    • 如果从引用隐藏元素的代码无法访问该元素,则引用被解析为被隐藏的元素。 例如,如果 Private 元素隐藏一个基类元素,则无权访问 Private 元素的代码会改为访问基类元素。

    • 如果您隐藏某个元素,仍然可以通过用基类的类型所声明的对象来访问被隐藏的元素。 也可以通过 MyBase 访问它。

Shadows 修饰符可用于下面的上下文中:

Class 语句

Const 语句

Declare 语句

Delegate 语句

Dim 语句

Enum 语句

Event 语句

Function 语句

Interface 语句

Property 语句

Structure Statement

Sub 语句

请参见

参考

Shared (Visual Basic)

Static (Visual Basic)

Private (Visual Basic)

MustOverride (Visual Basic)

NotOverridable (Visual Basic)

Overloads (Visual Basic)

Overridable (Visual Basic)

Overrides (Visual Basic)

概念

Visual Basic 中的 Me、My、MyBase 和 MyClass

继承的基础知识 (Visual Basic)

Visual Basic 中的隐藏