Dela via


Statisk (Visual Basic)

Anger att en eller flera deklarerade lokala variabler ska fortsätta att finnas och behålla sina senaste värden efter avslutad procedur där de deklareras.

Kommentarer

Normalt upphör en lokal variabel i en procedur att existera så snart proceduren stoppas. En statisk variabel fortsätter att finnas och behåller sitt senaste värde. Nästa gång koden anropar proceduren är variabeln inte initierad igen och den innehåller fortfarande det senaste värdet som du har tilldelat till den. En statisk variabel fortsätter att finnas under livslängden för klassen eller modulen som den definieras i.

Regler

  • Deklarationskontext. Du kan bara använda Static lokala variabler. Det innebär att deklarationskontexten för en Static variabel måste vara en procedur eller ett block i en procedur, och det kan inte vara en källfil, namnrymd, klass, struktur eller modul.

    Du kan inte använda Static i en strukturprocedur.

  • Det går inte att härleda datatyperna Static för lokala variabler. Mer information finns i Slutsatsdragning av lokal typ.

  • Kombinerade modifierare. Du kan inte ange Static tillsammans med ReadOnly, Shadowseller Shared i samma deklaration.

Funktionssätt

När du deklarerar en statisk variabel i en Shared procedur är endast en kopia av den statiska variabeln tillgänglig för hela programmet. Du anropar en Shared procedur med hjälp av klassnamnet, inte en variabel som pekar på en instans av klassen.

När du deklarerar en statisk variabel i en procedur som inte Sharedär , är endast en kopia av variabeln tillgänglig för varje instans av klassen. Du anropar en icke-delad procedur med hjälp av en variabel som pekar på en specifik instans av klassen.

Exempel

I följande exempel visas användningen av Static.

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

Variabeln StatictotalSales initieras till 0 endast en gång. Varje gång du anger updateSaleshar fortfarande totalSales det senaste värdet som du har beräknat för det.

Modifieraren kan användas i den här kontexten Static :

Dim-instruktion

Se även