Compartilhar via


Como: Acessar uma variável ocultada por uma classe derivada (Visual Basic)

Quando o código em uma classe de derivada acessa uma variável, o compilador resolve normalmente a referência para o mais próximo acessível versão, ou seja, o acessível versão as etapas de derivational mais baixas para trás da classede acesso. Se a variável é definida na classederivada, o código normalmente acessa a essa definição.

Se uma variável na classe baseé derivada classevariável sombra, ele oculta aversãode classe base. No entanto, você pode acessar avariável de classe basequalificando-a com o MyBasepalavra-chave.

Para acessar uma classe basevariáveloculto por uma classede derivada

  • Em uma expressão ou instrução de atribuição, preceda o nome de variável com o MyBase palavra-chave e um período (.).

    O compilador resolve a referência para aversão do classe baseda variável.

    O exemplo a seguir ilustra o sombreamento através de herança. Ele faz duas referências, que acessa a variável de sombreamento e uma que ignora o sombreamento.

    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
    

    The preceding example declares the variable shadowString in the base class and shadows it in the derived class. The procedure showStrings in the derived class displays the shadowing version of the string when the name shadowString is not qualified. It then displays the shadowed version when shadowString is qualified with the MyBase keyword.

Programação robusta

Para reduzir o risco de se referir a uma versão de indesejadas de uma variávelde sombreado, você pode qualificar totalmente todas as referências a uma variávelde sombreado. Shadowing introduces more than one version of a variable with the same name. When a code statement refers to the variable name, the version to which the compiler resolves the reference depends on factors such as the location of the code statement and the presence of a qualifying string. Isso pode aumentar o risco de se referir à versão errada da variável.

Consulte também

Tarefas

Como: Ocultar uma variável com o mesmo nome que sua variável (Visual Basic)

Como: Ocultar uma variável herdada (Visual Basic)

Referência

Shadows (Visual Basic)

Overrides (Visual Basic)

Conceitos

Sombreamento em Visual Basic

Diferenças entre sombreamento e sobreposição (Visual Basic)

Me, My, MyBase e MyClass no Visual Basic

Noções básicas de herança (Visual Basic)

Outros recursos

Referências a elementos declarados (Visual Basic)