Partilhar via


Como: Ocultar uma variável herdada

Uma classe derivada herda todas as definições de sua classe base.Se você deseja definir uma variável usando o mesmo nome que um elemento da classe base, você pode ocultar, ou sombrear, aquele elemento de classe base quando você define sua variável na classe derivada.Se você fizer isso, código na classe derivada acessa sua variável a não ser que ele circunde explicitamente o mecanismo de sombreamento.

Outra razão pela qual você possa desejar ocultar uma variável é protegê-la da revisão de classe base.A classe base pode passar por uma mudança que altere o elemento o qual você está herdando.Se isto acontecer, o modificador Shadows obriga referências da classe derivada a serem resolvidas a sua variável, em vez do elemento de classe base.

Para ocultar uma variável herdada

  1. Certifique-se de que a variável que você deseja usar esteja declarada a nível de classe (fora de qualquer procedimento).Caso cntrário você não precisa ocultá-lo.

  2. Dentro de sua classe derivada, escreva um Instrução Dim (Visual Basic) declarando sua variável.Use o mesmo nome que aquele da variável herdada.

  3. Inclua a palavra-chave Sombras na declaração.

    Quando código na classe derivada refere-se ao nome da variável, o compilador resolve a referência a sua variável.

    O exemplo a seguir ilustra sombreamento de uma variável herdada.

    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

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.Isto pode aumentar o risco de referir-se a uma versão não planejada de uma variável sombreada.Você pode reduzir aquele risco habilitando todas as referências a uma variável sombreada.

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: Acessar uma variável oculto por uma classe derivada

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

Substitui

Outros recursos

Referências aos elementos declaradas