Statikus (Visual Basic)
Meghatározza, hogy egy vagy több deklarált helyi változó továbbra is létezni fog, és megtartsa a legújabb értékeket a deklarálási eljárás befejezése után.
Megjegyzések
Az eljárás helyi változója általában az eljárás leállása után megszűnik. A statikus változók továbbra is léteznek, és megtartják a legutóbbi értékét. Amikor a kód legközelebb meghívja az eljárást, a változó nem lesz újrainicializálva, és továbbra is a hozzá rendelt legújabb értéket tartalmazza. A statikus változó továbbra is létezik annak az osztálynak vagy modulnak az élettartama alatt, amelyben definiálva van.
Szabályok
Deklarációs környezet. Csak helyi változókon használható
Static
. Ez azt jelenti, hogy egyStatic
változó deklarációs környezetének eljárásnak vagy eljárásblokknak kell lennie, és nem lehet forrásfájl, névtér, osztály, struktúra vagy modul.Szerkezeti eljáráson belül nem használható
Static
.A helyi változók adattípusai
Static
nem következtethetők. További információ: Helyi típus következtetése.Kombinált módosítók. A deklarációval
Shadows
ReadOnly
együtt vagyShared
ugyanabban a deklarációban nem adható megStatic
.
Működés
Ha egy eljárásban statikus változót Shared
deklarál, a statikus változónak csak egy példánya érhető el a teljes alkalmazás számára. Az eljárást az osztálynév használatával hívhatja meg Shared
, nem pedig egy olyan változót, amely az osztály egy példányára mutat.
Ha nem egy eljárásban deklarál egy statikus változót Shared
, az osztály minden példányához csak a változó egy példánya érhető el. Nem megosztott eljárást hívhat meg egy olyan változó használatával, amely az osztály egy adott példányára mutat.
Példa
Az alábbi példa bemutatja a .Static
Function updateSales(ByVal thisSale As Decimal) As Decimal
Static totalSales As Decimal = 0
totalSales += thisSale
Return totalSales
End Function
A Static
változó totalSales
inicializálása csak egyszer történik 0 értékre. Minden alkalommal, amikor beírja updateSales
, totalSales
továbbra is a legutóbb kiszámított értékkel rendelkezik.
A Static
módosító ebben a környezetben használható: