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
Inserire l'istruzione Dim per la variabile all'interno del modulo, della classe o della struttura, ma all'esterno di qualsiasi routine.
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
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.Includere la parola chiave Public nell'istruzione
Dim
.È possibile leggere o scrivere nella variabile da qualsiasi codice che interagisca con l'assembly.
oppure
Per una variabile locale, inserire l'istruzione
Dim
per la variabile all'interno di una routine.Non includere la parola chiave
Public
nell'istruzioneDim
.È 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
Inserire l'istruzione
Dim
per la variabile all'interno di una classe, ma all'esterno di qualsiasi routine.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
Inserire l'istruzione
Dim
per la variabile all'interno di un modulo, una classe o una struttura, ma all'esterno di qualsiasi routine.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.