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
Diferenças entre Sombreamento e Sobrescrição