Shadows (Visual Basic)
Especifica que un elemento de programación declarado vuelve a declarar y oculta un elemento del mismo nombre (o un conjunto de elementos sobrecargados) en una clase base.
Comentarios
El propósito principal de la propiedad reemplazada (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 crea un elemento con el mismo nombre que el que ya ha definido. Si esto sucede, el modificador Shadows
obliga a que las referencias a través de la clase se resuelvan en el miembro definido, en lugar del nuevo elemento de clase base.
Aunque tanto el sombreado como el reemplazo redefinen elementos heredados, existen diferencias significativas entre ambos conceptos. Para obtener más información, consulte Propiedades reemplazadas en Visual Basic.
Reglas
Contexto de declaración.
Shadows
solo se puede usar en el nivel de clase. Esto significa que el contexto de la declaración de un elementoShadows
debe ser una clase y no puede ser un archivo de código fuente, un espacio de nombres, una interfaz, un módulo, una estructura ni un procedimiento.Solo puede declarar un elemento de propiedad reemplazada en una sola instrucción de declaración.
Modificadores combinados. No es posible especificar
Shadows
junto conOverloads
,Overrides
oStatic
en la misma declaración.Tipos de elemento. Puede reemplazar cualquier tipo de elemento declarado con cualquier otro tipo. Si reemplaza una propiedad o procedimiento por 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 reemplazado de la clase base no está disponible desde dentro de la clase derivada que la reemplaza. Sin embargo, se aplican las consideraciones siguientes.
Si el elemento que reemplaza no es accesible desde el código que hace referencia a él, la referencia se resuelve en el elemento reemplazado. Por ejemplo, si un elemento
Private
reemplaza un elemento de clase base, el código que no tiene permiso para acceder al elementoPrivate
accede en su lugar al elemento de clase base.Si reemplaza un elemento, puede acceder al elemento reemplazado 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 modificador Shadows
se puede utilizar en los contextos siguientes: