Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Quand le code d'une classe dérivée accède à une variable, le compilateur résout normalement la référence vers la version accessible la plus proche, c'est-à-dire, celle qui remonte le moins d'étapes dans la hiérarchie de dérivation par rapport à la classe d'accès. Si la variable est définie dans la classe dérivée, le code accède normalement à cette définition.
Si la variable de classe dérivée ombre une variable dans la classe de base, elle masque la version de la classe de base. Toutefois, vous pouvez accéder à la variable de classe de base en la qualifier avec le MyBase
mot clé.
Pour accéder à une variable de classe de base masquée par une classe dérivée
Dans une instruction d’expression ou d’affectation, précédez le nom de la variable avec le
MyBase
mot clé et un point (.
).Le compilateur résout la référence à la version de classe de base de la variable.
L'exemple suivant illustre le masquage par héritage. Cela fait deux références, une qui accède à la variable d’ombre et une qui contourne l’ombre.
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’exemple précédent déclare la variable
shadowString
dans la classe de base et l’ombre dans la classe dérivée. La procédureshowStrings
de la classe dérivée affiche la version d’ombre de la chaîne lorsque le nomshadowString
n’est pas qualifié. Il affiche ensuite la version ombrée lorsqu’elleshadowString
est qualifiée avec leMyBase
mot clé.
Programmation robuste
Pour réduire le risque de faire référence à une version inattendue d’une variable ombrée, vous pouvez qualifier entièrement toutes les références à une variable ombrée. L’ombre introduit plusieurs versions d’une variable portant le même nom. Lorsqu’une instruction de code fait référence au nom de la variable, la version à laquelle le compilateur résout la référence dépend de facteurs tels que l’emplacement de l’instruction de code et la présence d’une chaîne éligible. Cela peut augmenter le risque de faire référence à la version incorrecte de la variable.
Voir aussi
- Références aux éléments déclarés
- Ombre dans Visual Basic
- Différences entre l'occultation et la substitution
- Guide pratique pour masquer une variable portant le même nom que votre variable
- Guide pratique pour masquer une variable héritée
- Ombres
- Substitutions
- Moi, My, MyBase et MyClass
- Principes de base de l’héritage