Niveaux d'accès dans Visual Basic

Le niveau d'accès d'un élément déclaré est l'étendue de la capacité à l'utiliser, à savoir le code qui est autorisé à lire l'élément ou à y écrire.Le niveau d'accès est déterminé d'une part par la façon dont vous déclarez l'élément lui-même et d'autre part par le niveau d'accès du conteneur de cet élément.Le code qui ne peut pas accéder à un élément conteneur ne peut accéder à aucun de ses éléments contenus, même qui sont ceux déclarés comme Public.Par exemple, une variable Public dans une structure Private est accessible à partir de l'intérieur de la classe contenant la structure, mais non à partir de l'extérieur de celle-ci.

Public

Le mot clé Public (Visual Basic) dans l'instruction de déclaration spécifie que les éléments sont accessibles à partir du code partout à l'intérieur d'un projet, à partir d'autres projets qui font référence à ce projet et à partir de tout assembly généré à partir de ce projet.Le code suivant illustre un exemple de déclaration Public.

Public Class classForEverybody

Vous pouvez utiliser le mot clé Public seulement au niveau du module, de l'interface ou de l'espace de noms.En d'autres termes, vous pouvez déclarer un élément public au niveau d'un fichier source ou d'un espace de noms, ou à l'intérieur d'une interface, d'un module, d'une classe ou d'une structure, mais pas dans une procédure.

Protégé

Le mot clé Protected (Visual Basic) dans l'instruction de déclaration spécifique que les éléments sont accessibles uniquement à partir d'une même classe ou d'une classe dérivée de celle-ci.Le code suivant illustre un exemple de déclaration Protected.

Protected Class classForMyHeirs

Vous pouvez utiliser Protected uniquement au niveau de la classe et uniquement lors de la déclaration d'un membre d'une classe.Cela signifie que vous pouvez déclarer un élément protégé dans une classe, mais pas au niveau d'un fichier source ou d'un espace de noms, ni à l'intérieur d'une interface, d'un module, d'une structure ou d'une procédure.

Friend

Le mot clé Friend (Visual Basic) dans l'instruction de déclaration spécifie que les éléments sont accessibles à partir du même assembly, mais pas à partir de l'extérieur de l'assembly.Le code suivant illustre un exemple de déclaration Friend.

Friend stringForThisProject As String

Vous pouvez utiliser le mot clé Friend seulement au niveau du module, de l'interface ou de l'espace de noms.En d'autres termes, vous pouvez déclarer un élément "friend" au niveau d'un fichier source ou d'un espace de noms, ou à l'intérieur d'une interface, d'un module, d'une classe ou d'une structure, mais pas dans une procédure.

Protected Friend

Les mots clés Protected et Friend ensemble dans l'instruction de déclaration spécifient que les éléments sont accessibles soit à partir de classes dérivées, soit à partir du même assembly, soit les deux.Le code suivant illustre un exemple de déclaration ProtectedFriend.

Protected Friend stringForProjectAndHeirs As String

Vous pouvez utiliser ProtectedFriend uniquement au niveau de la classe et uniquement lors de la déclaration d'un membre d'une classe.Cela signifie que vous pouvez déclarer un élément "protected friend" dans une classe, mais pas au niveau d'un fichier source ou d'un espace de noms, ni à l'intérieur d'une interface, d'un module, d'une structure ou d'une procédure.

Privé

Le mot clé Private (Visual Basic) dans l'instruction de déclaration spécifie que les éléments sont accessibles uniquement à partir du même module, de la même classe ou de la même structure.Le code suivant illustre un exemple de déclaration Private.

Private numberForMeOnly As Integer

Vous pouvez utiliser Private seulement au niveau du module.Cela signifie que vous pouvez déclarer un élément privé à l'intérieur d'un module, d'une classe ou d'une structure, mais pas au niveau d'un fichier source ou d'un espace de noms, ni à l'intérieur d'une interface ou d'une procédure.

Au niveau du module, l'instruction Dim utilisée sans mot clé de niveau d'accès équivaut à une déclaration Private.Toutefois, il peut s'avérer utile d'utiliser le mot clé Private afin que votre code soit plus facile à lire et à interpréter.

Modificateurs d'accès

Les mots clés qui spécifient le niveau d'accès portent le nom de modificateurs d'accès.Le tableau suivant compare les modificateurs d'accès.

Modificateur d'accès

Niveau d'accès accordé

Éléments que vous pouvez déclarer avec ce niveau d'accès

Contexte de déclaration dans lequel vous pouvez utiliser ce modificateur

Public

Illimité :

Tout code qui peut voir un élément public peut y accéder

Interfaces

Modules

Classes

Structures

Membres de structures

Procédures

Propriétés

Variables membres

Constantes

Énumérations

Événements

Déclarations externes

Délégués

Fichier source

Espace de noms

Interface

Module

Classe

Structure

Protected

Dérivationnel :

Le code dans la classe qui déclare un élément protégé, ou une classe dérivée d'elle, peut accéder à l'élément

Interfaces

Classes

Structures

Procédures

Propriétés

Variables membres

Constantes

Énumérations

Événements

Déclarations externes

Délégués

Classe

Friend

Assembly :

Le code dans l'assembly qui déclare un élément « friend » peut y accéder

Interfaces

Modules

Classes

Structures

Membres de structures

Procédures

Propriétés

Variables membres

Constantes

Énumérations

Événements

Déclarations externes

Délégués

Fichier source

Espace de noms

Interface

Module

Classe

Structure

ProtectedFriend

Union de Protected et Friend :

Le code dans la même classe ou le même assembly qu'un élément « protected friend » ou dans toute classe dérivée de la classe de l'élément, peut y accéder

Interfaces

Classes

Structures

Procédures

Propriétés

Variables membres

Constantes

Énumérations

Événements

Déclarations externes

Délégués

Classe

Private

Contexte de déclaration :

Le code dans le type qui déclare un élément privé, y compris code situé dans des types contenus, peut accéder à l'élément

Interfaces

Classes

Structures

Membres de structures

Procédures

Propriétés

Variables membres

Constantes

Énumérations

Événements

Déclarations externes

Délégués

Module

Classe

Structure

Voir aussi

Tâches

Comment : contrôler la disponibilité d'une variable (Visual Basic)

Référence

Dim, instruction (Visual Basic)

Static (Visual Basic)

Concepts

Noms d'éléments déclarés (Visual Basic)

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

Caractéristiques d'éléments déclarés (Visual Basic)

Durée de vie dans Visual Basic

Portée dans Visual Basic

Variables en Visual Basic

Déclaration de variable en Visual Basic