Partager via


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

  1. 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.

  2. 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

  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 à l’extérieur 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 interopérant 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 mot clé Public dans l’instruction Dim.

    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

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

  2. 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

  1. 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.

  2. 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, ProtectedFriend, 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.

Voir aussi