Partager via


Guide pratique pour contrôler la disponibilité d’une variable (Visual Basic)

Vous contrôlez la disponibilité d’une variable en spécifiant son niveau d’accès. Le niveau d’accès détermine le code autorisé à lire ou à écrire dans la variable.

  • Les variables membres (définies au niveau du module et en dehors de toute procédure) ont, par défaut, un accès public, ce qui signifie que tout code pouvant les voir peut y accéder. Vous pouvez le modifier en spécifiant un modificateur d’accès.

  • Les variables locales (définies à l’intérieur d’une procédure) ont un accès public, bien que seul le code de leur procédure puisse y accéder. Vous ne pouvez pas modifier le niveau d’accès d’une variable locale, mais vous pouvez modifier le niveau d’accès de la procédure qui le contient.

Pour plus d’informations, consultez Niveaux d’accès en Visual Basic.

Accès privé et public

Pour rendre une variable accessible uniquement à partir de son module, de sa classe ou de sa 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 .

    Vous pouvez lire ou écrire dans la variable depuis n’importe où dans le module, la classe ou la structure, mais pas à partir de l’extérieur.

Pour rendre une variable accessible à partir de n’importe quel code qui peut le voir

  1. Pour une variable membre, placez l’instruction Dim de la variable à l’intérieur d’un module, d’une classe ou d’une structure, mais en dehors de toute procédure.

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

    Vous pouvez lire ou écrire dans la variable à partir de n’importe quel code qui interopére avec votre assembly.

- ou -

  1. Pour une variable locale, placez l’instruction Dim de la variable à l’intérieur d’une procédure.

  2. N’incluez pas le Public mot clé dans l’instruction Dim .

    Vous pouvez lire ou écrire dans la variable depuis n’importe où dans la procédure, mais pas à partir de l’extérieur.

Accès protégé et ami

Vous pouvez limiter le niveau d’accès d’une variable à sa classe et à toutes les classes dérivées, ou à son assembly. Vous pouvez également spécifier l’union de ces limitations, qui autorise l’accès à partir du code dans n’importe quelle classe dérivée ou dans n’importe quel autre emplacement dans le même assembly. Vous spécifiez cette union en combinant les mots clés Protected et Friend dans la même déclaration.

Pour rendre une variable accessible uniquement à partir de sa classe et de toutes les classes dérivées

  1. Placez l’instruction Dim pour la variable à l’intérieur d’une classe, mais en dehors de toute procédure.

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

    Vous pouvez lire ou écrire dans la variable depuis n’importe où dans la classe, ainsi qu’à partir de n’importe quelle classe dérivée de celle-ci, mais pas à partir de l’extérieur d’une classe dans la chaîne de dérivation.

Pour rendre une variable accessible uniquement à partir du même assembly

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

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

    Vous pouvez lire ou écrire dans la variable depuis n’importe où dans le module, la classe ou la structure, ainsi qu’à partir de n’importe quel code dans le même assembly, mais pas à partir de l’extérieur de l’assembly.

Exemple :

L’exemple suivant montre les déclarations de variables avec Public, , ProtectedFriend, Protected Friendet Private les niveaux d’accès. Notez que lorsque l’instruction Dim spécifie un niveau d’accès, vous n’avez pas besoin d’inclure le Dim mot clé.

Public Class classForEverybody  
Protected Class classForMyHeirs  
Friend stringForThisProject As String  
Protected Friend stringForProjectAndHeirs As String  
Private numberForMeOnly As Integer  

Sécurité du .NET Framework

Plus le niveau d’accès d’une variable est restrictif, plus le code malveillant risque de l’utiliser de manière incorrecte.

Voir aussi