Compartir a través de


Cómo: Ocultar una variable heredada (Visual Basic)

Una clase derivada hereda todas las definiciones de su clase base. Si desea definir una variable con el mismo nombre que un elemento de la clase base, puede ocultar o sombrear ese elemento de la clase base al definir su variable en la clase derivada. De este modo, un código de la clase derivada tiene acceso a su variable a menos que omita de forma explícita el mecanismo de sombreado.

Otra razón para desear ocultar una variable heredada es protegerla de la revisión de la clase base. La clase base puede experimentar un cambio que modifica el elemento que ha heredado. En este caso, el modificador Shadows fuerza las referencias de la clase derivada que se deben resolver en la variable, no en el elemento de la clase base.

Para ocultar una variable heredada

  1. Asegúrese de que la variable que desea ocultar está declarada en el nivel de clase (fuera de cualquier procedimiento). De lo contrario, no necesita ocultarla.

  2. Dentro de la clase derivada, escriba Instrucción Dim (Visual Basic) para declarar la variable. Utilice el mismo nombre que el de la variable heredada.

  3. Incluya la palabra clave Shadows (Visual Basic) en la declaración.

    Cuando un código de la clase derivada hace referencia al nombre de variable, el compilador resuelve la referencia en su variable.

    El ejemplo siguiente ilustra el sombreado de una variable heredada.

    Public Class shadowBaseClass
        Public shadowString As String = "This is the base class string."
    End Class
    Public Class shadowDerivedClass
        Inherits shadowBaseClass
        Public Shadows shadowString As String = "This is the derived class string."
        Public Sub showStrings()
            Dim s As String = "Unqualified shadowString: " & shadowString &
                vbCrLf & "MyBase.shadowString: " & MyBase.shadowString
            MsgBox(s)
        End Sub
    End Class
    

    En el ejemplo anterior, se declara la variable shadowString en la clase base y se sombrea dicha variable en la clase derivada. El procedimiento showStrings de la clase derivada muestra la versión de sombreado de la cadena cuando el nombre shadowString no está calificado. Luego, muestra la versión sombreada cuando shadowString está calificado con la palabra clave MyBase.

Programación eficaz

El sombreado presenta más de una versión de una variable con el mismo nombre. Cuando una instrucción de código hace referencia al nombre de variable, la versión en la que el compilador resuelve la referencia depende de factores como la ubicación de la instrucción de código y la presencia de una cadena de calificación. Esto puede aumentar el riesgo de hacer referencia a una versión no deseada de una variable sombreada. Puede reducir ese riesgo calificando por completo todas las referencias en una variable sombreada.

Vea también

Tareas

Cómo: Ocultar una variable con el mismo nombre que su variable (Visual Basic)

Cómo: Obtener acceso a una variable que oculta una clase derivada (Visual Basic)

Referencia

Overrides (Visual Basic)

Conceptos

Sombrear en Visual Basic

Diferencias entre sombrear y reemplazar (Visual Basic)

Me, My, MyBase y MyClass en Visual Basic

Fundamentos de la herencia (Visual Basic)

Otros recursos

Referencias a elementos declarados (Visual Basic)