Static (Visual Basic)
Specifica che una o più variabili locali dichiarate restano valide e conservano i valori più recenti dopo il termine della routine nella quale vengono dichiarate.
Note
Di norma, l'esistenza di una variabile locale in una routine termina insieme alla routine stessa. Una variabile statica resta valida e conserva il valore più recente. Alla successiva chiamata della routine da parte del codice, la variabile non viene reinizializzata e contiene ancora il valore più recente a essa assegnato. Una variabile statica continua a esistere per la durata della classe o del modulo in cui è definita.
Regole
Contesto della dichiarazione. È possibile utilizzare Static solo per variabili locali. In altri termini, il contesto della dichiarazione per una variabile Static deve essere una routine o un blocco in una routine e non può essere un file di origine, uno spazio dei nomi, una classe, una struttura o un modulo.
Non è possibile utilizzare Static all'interno di una routine di struttura.
Non è possibile dedurre i tipi di dati delle variabili locali Static. Per ulteriori informazioni, vedere Inferenza del tipo di variabile locale (Visual Basic).
Modificatori combinati. Non è possibile specificare Static insieme a ReadOnly, Shadows o Shared nella stessa dichiarazione.
Comportamento
Il comportamento di qualsiasi variabile locale varia a seconda che sia dichiarata o meno in una routine Shared. Se la routine è Shared, tutte le variabili locali sono condivise automaticamente, incluse le variabili Static. Esiste una sola copia di tale variabile per l'intera applicazione. Viene chiamata una routine Shared che utilizza il nome della classe, non una variabile che punta a un'istanza della classe.
Se la routine non è Shared, le relative variabili locali sono variabili d'istanza, incluse le variabili Static. Esiste una copia indipendente di ciascuna variabile in ogni istanza della classe. Per chiamare una routine non condivisa si utilizza una variabile che punta a un'istanza specifica della classe. Qualsiasi variabile nell'istanza è indipendente da una variabile con lo stesso nome in un'altra istanza. Pertanto, possono contenere valori diversi.
Esempio
Nell'esempio seguente viene illustrato l'utilizzo di Static.
Function updateSales(ByVal thisSale As Decimal) As Decimal
Static totalSales As Decimal = 0
totalSales += thisSale
Return totalSales
End Function
La variabile Static totalSales viene inizializzata su 0 una sola volta. Ogni volta che si accede a updateSales, in totalSales è presente il valore calcolato più recente.
È possibile utilizzare il modificatore Static nel seguente contesto:
Vedere anche
Riferimenti
Concetti
Dichiarazione di variabili in Visual Basic
Inferenza del tipo di variabile locale (Visual Basic)