Compartir vía


Sombras (Visual Basic)

Especifica que un elemento de programación declarado vuelve a declarar y oculta un elemento con nombre idéntico, o un conjunto de elementos sobrecargados, en una clase base.

Observaciones

El propósito principal de sombrear (que también se conoce como ocultar por nombre) es conservar la definición de los miembros de la clase. La clase base puede sufrir un cambio que cree un elemento con el mismo nombre que el que ya haya definido. Si esto sucede, el modificador Shadows obliga a que las referencias de su clase se resuelvan en el miembro que usted definió, en lugar de en el nuevo elemento de clase base.

Tanto el sombreado como la invalidación vuelven a definir un elemento heredado, pero hay diferencias significativas entre los dos enfoques. Para obtener más información, vea Sombreado en Visual Basic.

Reglas

  • Contexto de declaración. Solo puede usar Shadows en el nivel de clase. Esto significa que el contexto de declaración de un Shadows elemento debe ser una clase y no puede ser un archivo de origen, un espacio de nombres, una interfaz, un módulo, una estructura o un procedimiento.

    Solo puede declarar un elemento de sombreado en una sola instrucción de declaración.

  • Modificadores combinados. No se puede especificar Shadows junto con Overloads, Overrideso Static en la misma declaración.

  • Tipos de elementos. Puede sombrear cualquier tipo de elemento declarado con cualquier otro tipo. Si sombrea una propiedad o procedimiento con otra propiedad o procedimiento, los parámetros y el tipo de valor devuelto no tienen que coincidir con los de la propiedad o procedimiento de la clase base.

  • Acceso. Normalmente, el elemento sombreado de la clase base no está disponible desde dentro de la clase derivada que lo sombrea. Sin embargo, se aplican las siguientes consideraciones.

    • Si el elemento de sombreado no es accesible desde el código que hace referencia a él, la referencia se resuelve en el elemento sombreado. Por ejemplo, si un Private elemento sombrea un elemento de clase base, el código que no tiene permiso para tener acceso al Private elemento tiene acceso al elemento de clase base en su lugar.

    • Si sombrea un elemento, todavía puede tener acceso al elemento sombreado a través de un objeto declarado con el tipo de la clase base. También puede acceder a él a través de MyBase.

El Shadows modificador se puede usar en estos contextos:

Consulte también