Condividi tramite


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

In genere, una variabile è nell'ambito o visibile per riferimento, in tutta l'area in cui la dichiari. In alcuni casi, il livello di accesso della variabile può influenzare l'ambito.

Per altre informazioni, vedere Ambito in Visual Basic.

Ambito a livello di blocco o procedura

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

  • Inserire l'istruzione Dim per la variabile tra le istruzioni di dichiarazione di inizio e di fine 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 procedura, 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 a termine singolo si applica allo stesso modo 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 nell'intero 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 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 procedure definite nel modulo demonstrateScope possono fare riferimento alla String variabile strMsg. Quando viene chiamata la usePrivateVariable routine, viene visualizzato il contenuto della variabile strMsg stringa in una finestra di dialogo.

Con la modifica seguente all'esempio precedente, la variabile stringa strMsg può essere richiamata dal codice in qualsiasi punto dello spazio dei nomi della relativa dichiarazione.

Public strMsg As String  

Programmazione affidabile

Più piccolo è l'ambito di una variabile, minore è il numero di opportunità che si hanno per fare accidentalmente riferimento al parametro anziché 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.

Vedere anche