Como: Acessar uma variável oculto por uma classe derivada

Quando 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 menor com versões anteriores da classe ao acessar.Se a variável é definida na classe derivada, o código normalmente acessa essa definição.

Se a variável de classe derivada é sombra de uma variável na classe base, ele oculta a versão de classe base.No entanto, é possível acesso a variável de classe base qualificando-a com o MyBase palavra-chave.

Para acessar uma variável de classe base oculto por uma classe derivada

  • Em uma expressão ou demonstrativo 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 efeito de sombra por meio de herança.Ele faz duas referências, uma que acessa a variável de sombreamento e outra 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: Distinguir entre dois elementos com o mesmo nome

Como: Ocultar uma variável com o mesmo nome sistema autônomo a variável

Como: Ocultar uma variável herdada

Conceitos

Resolvendo uma Referência Quando Várias Variáveis Têm o Mesmo Nome

Sombreamento em Visual Basic

Diferenças entre Sombreamento e Sobrescrição

Referência

Sombras

Substitui

Outros recursos

Referências aos elementos declaradas