Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Anmärkningar
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.
Reglemente
Deklarationskontext. Du kan bara använda
Staticlokala variabler. Det innebär att deklarationskontexten för enStaticvariabel 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
Statici en strukturprocedur.Det går inte att härleda datatyperna
Staticför lokala variabler. Mer information finns i Slutsatsdragning av lokal typ.Kombinerade modifierare. Du kan inte ange
Statictillsammans medReadOnly,ShadowsellerSharedi samma deklaration.
Beteende
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 :