Comment : 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 quel code a l’autorisation de lire ou d’écrire dans la variable.
Les variables membres (définies au niveau du module et en dehors de toute procédure) sont par défaut en accès public, ce qui signifie que tout code pouvant les voir peut y accéder. Vous pouvez changer ce paramètre en spécifiant un modificateur d’accès.
Les variables locales (définies dans une procédure) disposent en théorie d’un accès public, bien que seul le code qui est dans leur procédure puisse y accéder. Vous ne pouvez pas changer le niveau d’accès d’une variable locale, mais vous pouvez changer le niveau d’accès de la procédure qui la contient.
Pour plus d’informations, consultez Niveaux d’accès en Visual Basic.
Accès public et privé
Pour qu’une variable soit accessible uniquement à partir de son module, de sa classe ou de sa structure
Placez l’instruction Dim de la variable à l’intérieur du module, de la classe ou de la structure, mais à l’extérieur de toute procédure.
Incluez le mot clé Private dans l’instruction
Dim
.Vous pouvez lire ou écrire dans la variable à partir de n’importe où dans le module, la classe ou la structure, mais pas à partir de l’extérieur de celle-ci.
Pour qu’une variable soit accessible à partir de n’importe quel code pouvant la voir
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 à l’extérieur de toute procédure.Incluez le mot clé public dans l’instruction
Dim
.Vous pouvez lire ou écrire dans la variable à partir de n’importe quel code interopérant avec votre assembly.
-ou-
Pour une variable locale, placez l’instruction
Dim
de la variable à l’intérieur d’une procédure.N’incluez pas le mot clé
Public
dans l’instructionDim
.Vous pouvez lire ou écrire dans la variable à partir de n’importe où dans la procédure, mais pas à partir de l’extérieur de celle-ci.
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, ce qui autorise l’accès à partir du code de n’importe quelle classe dérivée ou de tout 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 qu’une variable soit accessible uniquement à partir de sa classe et de toute classe dérivée
Placez l’instruction
Dim
de la variable à l’intérieur d’une classe, mais à l’extérieur de toute procédure.Incluez le mot clé Protected dans l’instruction
Dim
.Vous pouvez lire ou écrire dans la variable à partir de 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 de la chaîne de dérivation.
Pour qu’une variable soit accessible uniquement à partir du même assembly
Placez l’instruction
Dim
de la variable à l’intérieur d’un module, d’une classe ou d’une structure, mais à l’extérieur de toute procédure.Incluez le mot clé Friend dans l’instruction
Dim
.Vous pouvez lire ou écrire dans la variable à partir de 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 des variables avec les niveaux d’accès Public
, Protected
Friend
, Protected Friend
et Private
. Notez que lorsque l’instruction Dim
spécifie un niveau d’accès, vous n’avez pas besoin d’inclure le mot clé Dim
.
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 les risques que du code malveillant puisse l’utiliser d’une mauvaise manière sont faibles.