Condividi tramite


Procedura: Accedere a una variabile nascosta da una classe derivata (Visual Basic)

Quando il codice in una classe derivata accede a una variabile, il compilatore risolve in genere il riferimento alla versione più vicina accessibile, ovvero la versione accessibile il minor numero di passaggi derivatiali all'indietro dalla classe di accesso. Se la variabile è definita nella classe derivata, il codice accede normalmente a tale definizione.

Se la variabile di classe derivata nasconde una variabile nella classe base, nasconde la versione della classe di base. Tuttavia, è possibile accedere alla variabile della classe di base qualificandola con la MyBase parola chiave .

Per accedere a una variabile di classe di base nascosta da una classe derivata

  • In un'istruzione di espressione o assegnazione, precedere il nome della variabile con la parola chiave MyBase e un punto (.).

    Il compilatore risolve il riferimento alla versione della classe base della variabile.

    Nell'esempio seguente viene illustrata l'ombreggiatura tramite ereditarietà. Fa due riferimenti, uno che accede alla variabile di ombreggiatura e uno che ignora l'ombreggiatura.

    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
    

    L'esempio precedente dichiara la variabile shadowString nella classe di base e che la nasconde nella classe derivata. La routine showStrings nella classe derivata visualizza la versione shadowing della stringa quando il nome shadowString non è qualificato. Viene quindi visualizzata la versione ombreggiata quando shadowString è qualificata con la MyBase parola chiave .

Programmazione affidabile

Per ridurre il rischio di fare riferimento a una versione non intenzionale di una variabile ombreggiata, è possibile qualificare completamente tutti i riferimenti a una variabile ombreggiata. Shadowing introduce più versioni di una variabile con lo stesso nome. Quando un'istruzione di codice fa riferimento al nome della variabile, la versione a cui il compilatore risolve il riferimento dipende da fattori quali la posizione dell'istruzione di codice e la presenza di una stringa idonea. Ciò può aumentare il rischio di fare riferimento alla versione errata della variabile.

Vedere anche