Procedura: controllare la disponibilità di una variabile (Visual Basic)

È possibile controllare la disponibilità di una variabile specificandone il livello di accesso. Il livello di accesso determina il codice autorizzato a leggere o scrivere nella variabile.

  • Le variabili membro (definite a livello di modulo e al di fuori di qualsiasi routine) vengono usate per impostazione predefinita per l'accesso pubblico, il che significa che qualsiasi codice in grado di visualizzarle può accedervi. È possibile modificare questa impostazione specificando un modificatore di accesso.

  • Le variabili locali (definite all'interno di una routine) hanno nominalmente accesso pubblico, anche se solo il codice all'interno della routine può accedervi. Non è possibile modificare il livello di accesso di una variabile locale, ma è possibile modificare il livello di accesso della routine che la contiene.

Per altre informazioni, vedere Livelli di accesso in Visual Basic.

Accesso privato e pubblico

Per rendere una variabile accessibile solo dall'interno del relativo modulo, classe o struttura

  1. Inserire l'istruzione Dim per la variabile all'interno del modulo, della classe o della struttura, ma all'esterno di qualsiasi routine.

  2. Includere la parola chiave Private nell'istruzione Dim.

    È possibile leggere o scrivere nella variabile da qualsiasi punto all'interno del modulo, della classe o della struttura, ma non dall'esterno.

Per rendere una variabile accessibile da qualsiasi codice in grado di visualizzarla

  1. Per una variabile membro, inserire l'istruzione Dim per la variabile all'interno di un modulo, una classe o una struttura, ma all'esterno di qualsiasi routine.

  2. Includere la parola chiave Public nell'istruzione Dim.

    È possibile leggere o scrivere nella variabile da qualsiasi codice che interagisca con l'assembly.

oppure

  1. Per una variabile locale, inserire l'istruzione Dim per la variabile all'interno di una routine.

  2. Non includere la parola chiave Public nell'istruzione Dim.

    È possibile leggere o scrivere nella variabile da qualsiasi punto all'interno della routine, ma non dall'esterno.

Accesso protetto e Friend

È possibile limitare il livello di accesso di una variabile alla relativa classe e a qualsiasi classe derivata o al relativo assembly. È anche possibile specificare l'unione di queste limitazioni, che consente l'accesso dal codice in qualsiasi classe derivata o in qualsiasi altra posizione nello stesso assembly. È possibile specificare questa unione combinando le parole chiave Protected e Friend nella stessa dichiarazione.

Per rendere una variabile accessibile solo dall'interno della relativa classe e da tutte le classi derivate

  1. Inserire l'istruzione Dim per la variabile all'interno di una classe, ma all'esterno di qualsiasi routine.

  2. Includere la parola chiave Protected nell'istruzione Dim.

    È possibile leggere o scrivere nella variabile da qualsiasi punto all'interno della classe, nonché dall'interno di qualsiasi classe da essa derivata, ma non dall'esterno di qualsiasi classe nella catena di derivazione.

Per rendere una variabile accessibile solo dall'interno dello stesso assembly

  1. Inserire l'istruzione Dim per la variabile all'interno di un modulo, una classe o una struttura, ma all'esterno di qualsiasi routine.

  2. Includere la parola chiave Friend nell'istruzione Dim.

    È possibile leggere o scrivere nella variabile da qualsiasi punto all'interno del modulo, della classe o della struttura, nonché da qualsiasi codice nello stesso assembly, ma non dall'esterno dell'assembly.

Esempio

L'esempio seguente mostra le dichiarazioni di variabili con i livelli di accesso Public, Protected, Friend, Protected Friend e Private. Si noti che quando l'istruzione Dim specifica un livello di accesso, non è necessario includere la parola chiave Dim.

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

Sicurezza di .NET Framework

Più restrittivo è il livello di accesso di una variabile, minore è la probabilità che il codice dannoso possa usarla in modo improprio.

Vedi anche