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
Conceitos
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)