Shadows (Visual Basic)

指示此声明的编程元素重新声明并隐藏基类中具有相同名称的元素(或重载元素集)。

注解

隐藏(也称为按名称隐藏)的主要目的是保留类成员的定义。 基类可能会发生更改,该更改将创建一个与你已定义的元素同名的元素。 如果发生这种情况,Shadows 修饰符会强制将通过你的类的引用解析为你定义的成员,而不是新的基类元素。

隐藏和重写操作都可重新定义继承的元素,但这两种方法之间又具有很大的差异。 有关详细信息,请参阅 Visual Basic 中的阴影操作

规则

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

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

  • 组合修饰符。 不能在同一过程声明中同时指定 ShadowsOverloadsOverridesStatic

  • 元素类型。 可以与任何其他类型一起隐藏任何类型的已声明元素。 如果用另一个属性或过程遮蔽一个属性或过程,则参数和返回类型不必与基类属性或过程中的参数或返回类型匹配。

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

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

    • 如果你隐藏了一个元素,你仍然可以通过一个声明为基类类型的对象来访问被隐藏元素。 你也可以通过 MyBase 来访问隐藏元素。

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

请参阅