Shadows (Visual Basic)Shadows (Visual Basic)

Especifica que un elemento de programación declarado vuelve a declarar y oculta un elemento con el mismo nombre, o un conjunto de elementos sobrecargados, en una clase base.Specifies that a declared programming element redeclares and hides an identically named element, or set of overloaded elements, in a base class.

ComentariosRemarks

El propósito principal de sombreado (también conocido como ocultar por nombre) consiste en conservar la definición de los miembros de clase.The main purpose of shadowing (which is also known as hiding by name) is to preserve the definition of your class members. La clase base puede sufrir un cambio que se crea un elemento con el mismo nombre que ya ha definido.The base class might undergo a change that creates an element with the same name as one you have already defined. Si esto ocurre, el Shadows modificador fuerza hace referencia a través de su clase se resuelvan en el miembro está definido, en lugar de para el nuevo elemento de la clase base.If this happens, the Shadows modifier forces references through your class to be resolved to the member you defined, instead of to the new base class element.

Aunque tanto el sombreado como el reemplazo redefinen elementos heredados, existen diferencias significativas entre ambos conceptos.Both shadowing and overriding redefine an inherited element, but there are significant differences between the two approaches. Para obtener más información, consulte sombrear en Visual Basic.For more information, see Shadowing in Visual Basic.

ReglasRules

  • Contexto de declaración.Declaration Context. Puede usar Shadows sólo en el nivel de clase.You can use Shadows only at class level. Esto significa que el contexto de declaración de un Shadows elemento debe ser una clase y no puede ser un archivo de código fuente, espacio de nombres, interfaz, módulo, estructura o procedimiento.This means the declaration context for a Shadows element must be a class, and cannot be a source file, namespace, interface, module, structure, or procedure.

    Puede declarar un único elemento sombreado en una única instrucción de declaración.You can declare only one shadowing element in a single declaration statement.

  • Modificadores combinados.Combined Modifiers. No puede especificar Shadows junto con Overloads, Overrides, o Static en la misma declaración.You cannot specify Shadows together with Overloads, Overrides, or Static in the same declaration.

  • Tipos de elemento.Element Types. Puede reemplazar cualquier tipo de elemento declarado con cualquier otro tipo.You can shadow any kind of declared element with any other kind. Si sombrea una propiedad o procedimiento con otra propiedad o procedimiento, los parámetros y el tipo de valor devuelto no es necesario para que coincida con los de la propiedad de clase base o el procedimiento.If you shadow a property or procedure with another property or procedure, the parameters and the return type do not have to match those in the base class property or procedure.

  • Acceso a.Accessing. El elemento sombreado en la clase base está disponible normalmente desde dentro de la clase derivada que lo reemplaza.The shadowed element in the base class is normally unavailable from within the derived class that shadows it. Sin embargo, se aplican las consideraciones siguientes.However, the following considerations apply.

    • Si el elemento reemplazado no es accesible desde el código que hace referencia a él, la referencia se resuelve en el elemento sombreado.If the shadowing element is not accessible from the code referring to it, the reference is resolved to the shadowed element. Por ejemplo, si un Private elemento oculta o prevalece sobre un elemento de clase base, el código que no tiene permiso para tener acceso a la Private elemento tiene acceso al elemento de clase base en su lugar.For example, if a Private element shadows a base class element, code that does not have permission to access the Private element accesses the base class element instead.

    • Ocultar un elemento, es posible acceder el elemento sombreado a través de un objeto declarado con el tipo de la clase base.If you shadow an element, you can still access the shadowed element through an object declared with the type of the base class. También puede acceder a través de MyBase.You can also access it through MyBase.

El modificador Shadows se puede utilizar en los contextos siguientes:The Shadows modifier can be used in these contexts:

Class (instrucción)Class Statement

Const (instrucción)Const Statement

Declare (instrucción)Declare Statement

Delegate (instrucción)Delegate Statement

Dim (instrucción)Dim Statement

Enum (instrucción)Enum Statement

Event (instrucción)Event Statement

Function (instrucción)Function Statement

Interface (instrucción)Interface Statement

Property (instrucción)Property Statement

Structure (instrucción)Structure Statement

Sub (instrucción)Sub Statement

Vea tambiénSee also