Partager via


Comment : accéder à une variable masquée par une classe dérivée (Visual Basic)

Lorsque 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, à savoir la version accessible avec le moins d'étapes de dérivation vers l'arrière de la classe accédante. 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 occulte une variable de la classe de base, elle masque la version de classe de base. Toutefois, vous pouvez accéder à la variable de classe de base en la qualifiant avec le mot clé MyBase.

Pour accéder à une variable de classe de base masquée par une classe dérivée

  • Dans une instruction d'expression ou d'assignation, faites précéder le nom de la variable du mot clé MyBase et d'un point (.).

    Le compilateur résout la référence vers la version de classe de base de la variable.

    L'exemple suivant illustre l'occultation par l'intermédiaire de l'héritage. Il effectue deux références, une qui accède à la variable occultante et une qui outrepasse l'occultation.

    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 la masque dans la classe dérivée. La procédure showStrings dans la classe dérivée affiche la version occultante de la chaîne lorsque le nom shadowString n'est pas qualifié. Elle affiche ensuite la version occultée lorsque shadowString est qualifié avec le mot clé MyBase .

Programmation fiable

Pour réduire le risque de référence à une version non souhaitée d'une variable occultée, vous pouvez effectuer une qualification complète de toutes les références vers une variable occultée. L'occultation introduit plusieurs versions d'une variable avec le même nom. Lorsqu'une instruction de code fait référence au nom de la variable, la version vers laquelle le compilateur résout la référence dépend de plusieurs facteurs, tels que l'emplacement de l'instruction de code et la présence d'une chaîne qualifiante. Cela peut augmenter le risque de référence à la version incorrecte de la variable.

Voir aussi

Tâches

Comment : masquer une variable portant le même nom que votre variable (Visual Basic)

Comment : masquer une variable héritée (Visual Basic)

Référence

Shadows (Visual Basic)

Overrides (Visual Basic)

Concepts

Références aux éléments déclarés (Visual Basic)

Occultation dans Visual Basic

Différences entre l'occultation et la substitution (Visual Basic)

Me, My, MyBase et MyClass dans Visual Basic

Éléments fondamentaux de l'héritage (Visual Basic)