Durata in Visual Basic

Aggiornamento: novembre 2007

La durata di un elemento dichiarato è il periodo di tempo durante il quale l'elemento è disponibile per l'utilizzo. Le variabili sono gli unici elementi che hanno una durata. Per questo motivo, i parametri delle routine e i valori restituiti dalle funzioni vengono considerati dal compilatore come casi speciali di variabili. La durata di una variabile è il periodo di tempo durante il quale la variabile può contenere un valore. Il valore può variare durante la durata della variabile, ma essa conterrà sempre un valore.

Diversità di durata

La durata di variabile membro (dichiarata a livello di modulo, all'esterno di una qualsiasi routine) in genere corrisponde alla durata dell'elemento in cui è dichiarata. Una variabile non condivisa dichiarata in una classe o in una struttura esiste come copia separata per ogni istanza della classe o della struttura in cui è dichiarata. La durata di ognuna di queste variabili corrisponde a quella della relativa istanza. In ogni caso, una variabile Shared ha un'unica durata, uguale al tempo di esecuzione dell'applicazione.

Una variabile locale (dichiarata all'interno di una routine) esiste solo mentre è in esecuzione la routine in cui è dichiarata. Questo vale anche per i parametri della routine e per qualsiasi valore restituito dalle funzioni. In ogni caso, se la routine ne chiama altre, le variabili locali mantengono il proprio valore durante l'esecuzione delle routine chiamate.

Inizio di durata

La durata di una variabile locale inizia quando il controllo accede alla routine nella quale è dichiarata. Non appena la routine inizia l'esecuzione, ogni variabile locale viene inizializzata sul valore predefinito del relativo tipo di dati. Quando rileva un'istruzione Dim che definisce i valori iniziali, la routine imposta le variabili su tali valori, anche se il codice ha già assegnato alle variabili altri valori.

Ogni membro di una variabile di struttura viene inizializzato come se fosse una variabile distinta. Analogamente, ogni elemento di una variabile di matrice viene inizializzato singolarmente.

Le variabili dichiarate in un blocco all'interno di una routine, ad esempio un ciclo For, vengono inizializzate al momento dell'accesso alla routine. Queste inizializzazioni si verificano anche se il blocco non verrà mai eseguito.

Fine di durata

Al termine di una routine i valori delle variabili locali non vengono mantenuti e la memoria assegnata a tali variabili viene recuperata da Visual Basic. Alla successiva chiamata della routine, tutte le variabili locali verranno ricreate e reinizializzate.

Quando un'istanza di una classe o di una struttura termina, la memoria viene recuperata e i valori delle relative variabili non condivise vengono persi. Ogni nuova istanza della classe o della struttura crea e reinizializza le proprie variabili non condivise. Le variabili Shared, tuttavia, vengono mantenute fino al termine dell'esecuzione dell'applicazione.

Estensione di durata

Se una variabile locale viene dichiarata con la parola chiave Static, la variabile avrà una durata maggiore rispetto al tempo di esecuzione della relativa routine. Nella seguente tabella viene illustrata la relazione tra la dichiarazione della routine e la durata di una variabile Static.

Posizione della routine e modalità di condivisione

Inizio della durata della variabile statica

Fine della durata della variabile statica

In un modulo (condiviso per impostazione predefinita)

La prima volta che la routine viene chiamata

Al termine dell'esecuzione dell'applicazione

In una classe o in una struttura, Shared (la routine non è un membro di istanza)

La prima volta che la routine viene chiamata su un'istanza specifica o sul nome della classe o della struttura

Al termine dell'esecuzione dell'applicazione

In un'istanza di una classe o di una struttura, non Shared (la routine è un membro di istanza)

La prima volta che la routine viene chiamata sull'istanza specifica

Quando l'istanza viene rilasciata per la Garbage Collection

Vedere anche

Attività

Procedura: aumentare la durata di una variabile

Risoluzione dei problemi relativi ai tipi di dati

Concetti

Nomi di elementi dichiarati

Ambito in Visual Basic

Livelli di accesso in Visual Basic

Variabili in Visual Basic

Dichiarazione di variabili in Visual Basic

Riferimenti

Shared (Visual Basic)

Nothing (Visual Basic)

Static (Visual Basic)

Altre risorse

Riferimenti a elementi dichiarati