Procedura: controllare l'ambito di una variabile (Visual Basic)
L'ambito di una variabile, ovvero l'area in cui la variabile è visibile per riferimento, corrisponde in genere all'area in cui la variabile è dichiarata.In alcuni casi, l'ambito della variabile può essere modificato dal relativo livello di accesso.
Per ulteriori informazioni, vedere Ambito in Visual Basic.
Ambito a livello di blocco o di routine
Per rendere una variabile visibile solo all'interno di un blocco
Inserire l'Istruzione Dim (Visual Basic) relativa alla variabile tra l'istruzione di dichiarazione iniziale e quella finale del blocco, ad esempio tra le istruzioni For e Next di un ciclo For.
È possibile fare riferimento alla variabile solo dall'interno del blocco.
Per rendere una variabile visibile solo all'interno di una routine
Inserire l'istruzione Dim relativa alla variabile all'interno della routine ma all'esterno di un qualsiasi blocco, ad esempio un blocco With...End With.
È possibile fare riferimento alla variabile solo dall'interno della routine, inclusi gli eventuali blocchi contenuti nella routine.
Ambito a livello di modulo o di spazio dei nomi
Per comodità, la singola espressione a livello di modulo fa riferimento ai moduli, alle classi e alle strutture.L'ambito di una variabile a livello di modulo dipende dal livello di accesso della variabilee dallo spazio dei nomi contenente il modulo, la classe o la struttura.
Per rendere una variabile visibile in un modulo, una classe o una struttura
Inserire l'istruzione Dim relativa alla variabile all'interno del modulo, della classe o della struttura ma all'esterno di una qualsiasi routine.
Includere la parola chiave Private (Visual Basic) nell'istruzione Dim.
È possibile fare riferimento alla variabile da qualsiasi punto all'interno del modulo, della classe o della struttura, ma non dall'esterno.
Per rendere una variabile visibile in uno spazio dei nomi
Inserire l'istruzione Dim relativa alla variabile all'interno del modulo, della classe o della struttura ma all'esterno di una qualsiasi routine.
Includere la parola chiave Friend (Visual Basic) o Public (Visual Basic) nell'istruzione Dim.
È possibile fare riferimento alla variabile da qualsiasi punto all'interno dello spazio dei nomi contenente il modulo, la classe o la struttura.
Esempio
Nell'esempio riportato di seguito viene dichiarata una variabile a livello di modulo e la visibilità della variabile viene limitata al codice interno al modulo.
Module demonstrateScope
Private strMsg As String
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
End Module
Nell'esempio precedente tutte le routine definite nel modulo demonstrateScope possono fare riferimento alla variabile StringstrMsg.Quando viene chiamata la routine usePrivateVariable, il contenuto della variabile di stringa strMsg viene visualizzato in una finestra di dialogo.
Modificando l'esempio precedente come indicato di seguito, è possibile fare riferimento alla variabile di stringa strMsg da qualsiasi parte di codice nello spazio dei nomi della relativa dichiarazione.
Public strMsg As String
Programmazione efficiente
Più ristretto è l'ambito di una variabile, minori saranno le possibilità di fare riferimento accidentalmente a tale variabile al posto di un'altra con lo stesso nome.Questo consente inoltre di ridurre al minimo i problemi di corrispondenza dei riferimenti.
Sicurezza
Più ristretto è l'ambito di una variabile, minori saranno le probabilità che la variabile possa essere utilizzata in modo improprio da malware.