Compartilhar via


Como acessar uma variável oculta por uma classe derivada (Visual Basic)

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

Se a variável de classe derivada é sombra de uma variável na classe base, ele oculta a versão da classe base. No entanto, você pode acessar a variável de classe base, qualificá-la com o MyBase palavra-chave.

Para acessar uma variável ocultada por uma classe derivada da classe base

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

    O compilador resolve a referência para a versão de classe base da variável.

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

    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
    

    O exemplo precedente declara a variável shadowString na classe base e a sombreia na classe derivada. O procedimento showStrings na classe derivada exibe a versão sombreada da cadeia de caracteres quando o nome shadowString não está habilitado. Isso então exibe a versão sombreada quando shadowString esa habilitado com a palavra-chave MyBase .

Programação robusta

Para reduzir o risco de se referir a uma versão não pretendida de uma variável sombreada, você pode qualificar totalmente todas as referências a uma variável sombreada. Sombreamento introduz mais de uma versão de uma variável com o mesmo nome. Quando uma declaração de código refere-se ao nome da variável, a versão a qual o compilador resolve a referência depende de fatores tais como a localização da declaração de código e a presença de cadeia de caracteres de habilitação. 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 a variável (Visual Basic)

Como ocultar uma variável herdada (Visual Basic)

Referência

Sombras (Visual Basic)

Substituições (Visual Basic)

Conceitos

Referências a elementos declarados (Visual Basic)

Sombreamento no 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)