Static (Visual Basic)

Specifica che una o più variabili locali dichiarate devono continuare a esistere e di conservarne i valori più recenti dopo la chiusura della procedura in cui vengono dichiarate.

Osservazioni:

In genere, una variabile locale in una routine smette di esistere non appena si arresta la routine. Una variabile statica continua a esistere e mantiene il valore più recente. La volta successiva che il codice chiama la routine, la variabile non viene reinizializzata e contiene ancora il valore più recente assegnato. Una variabile statica continua a esistere per la durata della classe o del modulo in cui è definita.

Regole

  • Contesto della dichiarazione. È possibile usare Static solo nelle variabili locali. Ciò significa che il contesto di dichiarazione per una variabile Static deve essere una routine o un blocco in una routine e non può essere un file di origine, spazio dei nomi, classe, struttura o modulo.

    Non è possibile usare Static all'interno di una routine struttura.

  • Non è possibile dedurre i tipi di dati delle variabili locali Static. Per altre informazioni, vedere Inferenza del tipo di variabile locale.

  • Modificatori combinati. Non è possibile specificare Static insieme a ReadOnly, Shadows o Shared nella stessa dichiarazione.

Comportamento

Quando si dichiara una variabile statica in una routine Shared, per l'intera applicazione è disponibile una sola copia della variabile statica. Chiamare una routine Shared usando il nome della classe, non una variabile che punta a un'istanza della classe.

Quando si dichiara una variabile statica in una routine che non è Shared, per ogni istanza della classe è disponibile una sola copia della variabile. Per chiamare una routine non condivisa, usare una variabile che punta a un'istanza specifica della classe.

Esempio

L'esempio seguente illustra l'uso di Static.

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

La variabile StatictotalSales viene inizializzata su 0 una sola volta. Ogni volta che si immette updateSales, totalSales ha ancora il valore più recente calcolato.

Il modificatore Static può essere usato in questo contesto:

Istruzione Dim

Vedi anche