Partager via


Niveaux d’accès en Visual Basic

Le niveau d’accès d’un élément déclaré est l’étendue de la possibilité d’y accéder, c’est-à-dire ce que le code a l’autorisation de lire ou d’écrire dans celui-ci. Cela est déterminé non seulement par la façon dont vous déclarez l’élément lui-même, mais également par le niveau d’accès du conteneur de l’é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 ceux déclarés en tant que Public. Par exemple, une Public variable dans une Private structure est accessible à partir de la classe qui contient la structure, mais pas à partir de l’extérieur de cette classe.

Publique

Le mot clé public dans l’instruction de déclaration spécifie que l’élément est accessible à partir du code n’importe où dans le même projet, à partir d’autres projets qui référencent le projet et à partir de n’importe quel assembly généré à partir du projet. Le code suivant montre un exemple de Public déclaration :

Public Class ClassForEverybody

Vous pouvez utiliser Public uniquement au niveau du module, de l’interface ou de l’espace de noms. Cela signifie que vous pouvez déclarer un élément public au niveau d’un fichier ou d’un espace de noms source, 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 dans l’instruction de déclaration spécifie que l’élément est accessible uniquement à partir de la même classe ou d’une classe dérivée de cette classe. Le code suivant montre un exemple de Protected déclaration :

Protected Class ClassForMyHeirs

Vous ne pouvez utiliser Protected qu’au niveau de la classe et uniquement lorsque vous déclarez 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, ou à l’intérieur d’une interface, d’un module, d’une structure ou d’une procédure.

Ami

Le mot clé Friend dans l’instruction de déclaration spécifie que l’élément est accessible à partir du même assembly, mais pas à partir de l’extérieur de l’assembly. Le code suivant montre un exemple de Friend déclaration :

Friend stringForThisProject As String

Vous pouvez utiliser Friend uniquement au niveau du module, de l’interface ou de l’espace de noms. Cela signifie que vous pouvez déclarer un élément friend au niveau d’un fichier ou d’un espace de noms source, ou à l’intérieur d’une interface, d’un module, d’une classe ou d’une structure, mais pas dans une procédure.

Ami protégé

La combinaison de mots clés Protected Friend dans l’instruction de déclaration spécifie que l’élément est accessible à partir de classes dérivées ou à partir du même assembly, ou des deux. Le code suivant montre un exemple de Protected Friend déclaration :

Protected Friend stringForProjectAndHeirs As String

Vous ne pouvez utiliser Protected Friend qu’au niveau de la classe et uniquement lorsque vous déclarez un membre d’une classe. Cela signifie que vous pouvez déclarer un élément friend protégé dans une classe, mais pas au niveau d’un fichier source ou d’un espace de noms, ou à l’intérieur d’une interface, d’un module, d’une structure ou d’une procédure.

Privé

Le mot clé private dans l’instruction de déclaration spécifie que l’élément est accessible uniquement à partir du même module, classe ou structure. Le code suivant montre un exemple de Private déclaration :

Private _numberForMeOnly As Integer

Vous ne pouvez utiliser Private qu’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, à l’intérieur d’une interface ou dans une procédure.

Au niveau du module, l’instruction Dim sans mots clés de niveau d’accès équivaut à une Private déclaration. Toutefois, vous pouvez utiliser le mot clé pour faciliter la Private lecture et l’interprétation de votre code.

Privé protégé

La combinaison de mots clés Private Protected dans l’instruction de déclaration spécifie que l’élément est accessible uniquement à partir de la même classe, ainsi que des classes dérivées trouvées dans le même assembly que la classe conteneur. Le Private Protected modificateur d’accès est pris en charge à partir de Visual Basic 15.5.

L’exemple suivant montre une Private Protected déclaration :

Private Protected internalValue As Integer

Vous pouvez déclarer un Private Protected élément uniquement à l’intérieur d’une classe. Vous ne pouvez pas le déclarer dans une interface ou une structure, ni le déclarer au niveau d’un fichier ou d’un espace de noms source, à l’intérieur d’une interface ou d’une structure, ou dans une procédure.

Le Private Protected modificateur d’accès est pris en charge par Visual Basic 15.5 et versions ultérieures. Pour l’utiliser, vous ajoutez l’élément suivant à votre fichier de projet Visual Basic (*.vbproj). Tant que Visual Basic 15.5 ou version ultérieure est installé sur votre système, il vous permet de tirer parti de toutes les fonctionnalités de langage prises en charge par la dernière version du compilateur Visual Basic :

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>

Pour utiliser le Private Protected modificateur d’accès, vous devez ajouter l’élément suivant à votre fichier de projet Visual Basic (*.vbproj) :

<PropertyGroup>
   <LangVersion>15.5</LangVersion>
</PropertyGroup>

Pour plus d’informations, consultez la définition de la version du langage Visual Basic.

Modificateurs d’accès

Les mots clés qui spécifient le niveau d’accès sont appelés 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

Cours

Structures

Membres de la structure

Procédures

Propriétés

Variables de membre

Constantes

Énumérations

Événements

Déclarations externes

Délégués
Fichier source

Namespace

Interface

Module

classe

Structure
Protected Dérivation :

Le code dans la classe qui déclare un élément protégé, ou une classe dérivée de celui-ci, peut accéder à l’élément
Interfaces

Cours

Structures

Procédures

Propriétés

Variables de membre

Constantes

Énumérations

Événements

Déclarations externes

Délégués
classe
Friend Assemblée:

Code dans l’assembly qui déclare un élément friend peut y accéder
Interfaces

Modules

Cours

Structures

Membres de la structure

Procédures

Propriétés

Variables de membre

Constantes

Énumérations

Événements

Déclarations externes

Délégués
Fichier source

Namespace

Interface

Module

classe

Structure
Protected Friend Union de Protected et Friend:

Le code dans la même classe ou le même assembly qu’un élément friend protégé, ou dans n’importe quelle classe dérivée de la classe de l’élément, peut y accéder
Interfaces

Cours

Structures

Procédures

Propriétés

Variables de membre

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 du code dans des types contenus, peut accéder à l’élément
Interfaces

Cours

Structures

Membres de la structure

Procédures

Propriétés

Variables de membre

Constantes

Énumérations

Événements

Déclarations externes

Délégués
Module

classe

Structure
Private Protected Code dans la classe qui déclare un élément protégé privé ou du code dans une classe dérivée trouvée dans le même assembly que la classe bas. Interfaces

Cours

Structures

Procédures

Propriétés

Variables de membre

Constantes

Énumérations

Événements

Déclarations externes

Délégués
classe

Voir aussi