Static (Visual Basic)Static (Visual Basic)

Specifica che una o più variabili locali dichiarate devono continuare a esistere e mantenere i valori più recenti dopo la terminazione della routine in cui sono dichiarate.Specifies that one or more declared local variables are to continue to exist and retain their latest values after termination of the procedure in which they are declared.

CommentiRemarks

In genere, una variabile locale di una routine cessa di esistere non appena la procedura viene arrestata.Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. Una variabile statica continua a esistere e mantiene il valore più recente.A static variable continues to exist and retains its most recent value. Alla successiva chiamata della stored procedure da parte del codice, la variabile non viene reinizializzata e continua a contenere l'ultimo valore assegnato.The next time your code calls the procedure, the variable is not reinitialized, and it still holds the latest value that you assigned to it. Una variabile statica continua a esistere per la durata della classe o del modulo in cui è definita.A static variable continues to exist for the lifetime of the class or module that it is defined in.

RegoleRules

  • Contesto della dichiarazione.Declaration Context. È possibile utilizzare Static solo su variabili locali.You can use Static only on local variables. Ciò significa che il contesto di dichiarazione per una Static variabile 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.This means the declaration context for a Static variable must be a procedure or a block in a procedure, and it cannot be a source file, namespace, class, structure, or module.

    Non è possibile utilizzare Static all'interno di una routine della struttura.You cannot use Static inside a structure procedure.

  • StaticNon è possibile dedurre i tipi di dati delle variabili locali.The data types of Static local variables cannot be inferred. Per altre informazioni, vedere inferenza dei tipi locali.For more information, see Local Type Inference.

  • Modificatori combinati.Combined Modifiers. Non è possibile specificare Static insieme a ReadOnly , Shadows o Shared nella stessa dichiarazione.You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.

ComportamentoBehavior

Quando si dichiara una variabile statica in una Shared routine, solo una copia della variabile statica è disponibile per l'intera applicazione.When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. È possibile chiamare una Shared stored procedure usando il nome della classe, non una variabile che punta a un'istanza della classe.You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

Quando si dichiara una variabile statica in una routine che non è Shared , solo una copia della variabile è disponibile per ogni istanza della classe.When you declare a static variable in a procedure that isn't Shared, only one copy of the variable is available for each instance of the class. Una routine non condivisa viene chiamata utilizzando una variabile che punta a un'istanza specifica della classe.You call a non-shared procedure by using a variable that points to a specific instance of the class.

EsempioExample

L'esempio seguente illustra l'uso di Static.The following example demonstrates the use of Static.

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

La Static variabile totalSales viene inizializzata su 0 solo una volta.The Static variable totalSales is initialized to 0 only one time. Ogni volta che si immette updateSales , totalSales dispone ancora del valore più recente calcolato.Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

Il Static modificatore può essere usato in questo contesto:The Static modifier can be used in this context:

Istruzione DimDim Statement

Vedi ancheSee also