Condividi tramite


Procedura: controllare l'ambito di una variabile (Visual Basic)

In genere una variabile si trova nell'ambito o è visibile per riferimento in tutta l'area in cui viene dichiarata. In alcuni casi il livello di accesso della variabile può influenzarne l'ambito.

Per altre informazioni, vedere Scope in Visual Basic.

Ambito a livello di blocco o routine

Per rendere visibile una variabile solo all'interno di un blocco

  • Posizionare l'Istruzione Dim per la variabile tra le istruzioni di dichiarazione di avvio e di terminazione 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 visibile una variabile solo all'interno di una routine

  • Inserire l'istruzione Dim per la variabile all'interno della routine, ma all'esterno di qualsiasi blocco, ad esempio un blocco With...End With.

    È possibile fare riferimento alla variabile solo dall'interno della routine, incluso all'interno di qualsiasi blocco contenuto nella routine.

Ambito a livello di modulo o spazio dei nomi

Per praticità, il livello di modulo del singolo termine si applica ugualmente a moduli, classi e strutture. Il livello di accesso di una variabile a livello di modulo ne determina l'ambito. Lo spazio dei nomi che contiene il modulo, la classe o la struttura influisce anche sull'ambito.

Per rendere visibile una variabile in un modulo, una classe o una 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.

  3. È possibile fare riferimento alla variabile da qualsiasi punto all'interno del modulo, della classe o della struttura, ma non dall'esterno.

Per rendere visibile una variabile in uno spazio dei nomi

  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 Friend o Public nell'istruzione Dim.

  3. È possibile fare riferimento alla variabile da qualsiasi punto all'interno dello spazio dei nomi contenente il modulo, la classe o la struttura.

Esempio

L'esempio seguente dichiara una variabile a livello di modulo e ne limita la visibilità al codice all'interno del 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, viene visualizzato il contenuto della variabile stringa strMsg in una finestra di dialogo.

Con la modifica seguente all'esempio precedente, il codice può fare riferimento alla variabile stringa strMsg in qualsiasi punto dello spazio dei nomi della relativa dichiarazione.

Public strMsg As String  

Programmazione efficiente

Più piccolo è l'ambito di una variabile, minore è la probabilità di riferimenti accidentali alla variabile anziché a un'altra variabile con lo stesso nome. È anche possibile ridurre al minimo i problemi di corrispondenza dei riferimenti.

Sicurezza di .NET Framework

Più ristretto è l'ambito di una variabile, minore è la probabilità che il codice dannoso possa usarlo in modo improprio.

Vedi anche