Partager via


Guide pratique pour contrôler l’étendue d’une variable (Visual Basic)

Normalement, une variable est dans l’étendue ou visible pour référence, dans toute la région dans laquelle vous la déclarez. Dans certains cas, le niveau d’accès de la variable peut influencer son étendue.

Pour plus d'informations, consultez Scope in Visual Basic.

Étendue au niveau du bloc ou de la procédure

Pour rendre une variable visible uniquement dans un bloc

  • Placez l’instruction Dim pour la variable entre les instructions de déclaration initiale et finale de ce bloc, par exemple entre les instructions For et Next d’une boucle For.

    Vous pouvez faire référence à la variable uniquement à partir du bloc.

Pour rendre une variable visible uniquement dans une procédure

  • Placez l’instruction Dim pour la variable à l’intérieur de la procédure, mais en dehors de tout bloc (tel qu’un bloc With...End With).

    Vous pouvez faire référence à la variable uniquement à partir de la procédure, y compris à l’intérieur de n’importe quel bloc contenu dans la procédure.

Étendue au niveau du module ou de l’espace de noms

Pour des raisons pratiques, le niveau de module à terme unique s’applique également aux modules, aux classes et aux structures. Le niveau d’accès d’une variable de niveau module détermine son étendue. L’espace de noms qui contient le module, la classe ou la structure influence également l’étendue.

Pour rendre une variable visible dans un module, une classe ou une structure

  1. Placez l’instruction Dim pour la variable à l’intérieur du module, de la classe ou de la structure, mais en dehors de toute procédure.

  2. Incluez le mot clé Private dans l’instruction Dim .

  3. Vous pouvez faire référence à la variable n’importe où dans le module, la classe ou la structure, mais pas à partir de l’extérieur.

Pour rendre une variable visible dans un espace de noms

  1. Placez l’instruction Dim pour la variable à l’intérieur du module, de la classe ou de la structure, mais en dehors de toute procédure.

  2. Incluez le mot clé Friend ou Public dans l’instruction Dim .

  3. Vous pouvez faire référence à la variable à partir de n’importe où dans l’espace de noms contenant le module, la classe ou la structure.

Exemple :

L’exemple suivant déclare une variable au niveau du module et limite sa visibilité au code dans le module.

Module demonstrateScope  
    Private strMsg As String  
    Sub initializePrivateVariable()  
        strMsg = "This variable cannot be used outside this module."  
    End Sub  
    Sub usePrivateVariable()  
        MsgBox(strMsg)  
    End Sub  
End Module  

Dans l’exemple précédent, toutes les procédures définies dans le module demonstrateScope peuvent faire référence à la String variable strMsg. Lorsque la usePrivateVariable procédure est appelée, elle affiche le contenu de la variable strMsg de chaîne dans une boîte de dialogue.

Avec la modification suivante de l’exemple précédent, la variable strMsg de chaîne peut être référencée par du code n’importe où dans l’espace de noms de sa déclaration.

Public strMsg As String  

Programmation robuste

Plus l’étendue d’une variable est réduite, moins vous avez d’opportunités pour faire référence accidentellement à celle-ci à la place d’une autre variable portant le même nom. Vous pouvez également réduire les problèmes de correspondance de référence.

Sécurité du .NET Framework

Plus l’étendue d’une variable est réduite, plus le code malveillant risque de l’utiliser de manière incorrecte.

Voir aussi