Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
MyBasee 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 ClassL'esempio precedente dichiara la variabile
shadowStringnella classe di base e che la nasconde nella classe derivata. La routineshowStringsnella classe derivata visualizza la versione shadowing della stringa quando il nomeshadowStringnon è qualificato. Viene quindi visualizzata la versione ombreggiata quandoshadowStringè qualificata con laMyBaseparola 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.