Static (Visual Basic)
Określa, że co najmniej jedna zadeklarowana zmienna lokalna ma nadal istnieć i zachować ich najnowsze wartości po zakończeniu procedury, w której są deklarowane.
Uwagi
Zwykle zmienna lokalna w procedurze przestaje istnieć natychmiast po zatrzymaniu procedury. Zmienna statyczna nadal istnieje i zachowuje najnowszą wartość. Następnym razem, gdy kod wywołuje procedurę, zmienna nie zostanie ponownie zainicjowana i nadal będzie przechowywać najnowszą przypisaną do niej wartość. Zmienna statyczna nadal istnieje przez okres istnienia klasy lub modułu, w ramach którego jest ona zdefiniowana.
Reguły
Kontekst deklaracji. Można używać
Static
tylko w zmiennych lokalnych. Oznacza to, że kontekst deklaracji dlaStatic
zmiennej musi być procedurą lub blokiem w procedurze i nie może być plikiem źródłowym, przestrzenią nazw, klasą, strukturą lub modułem.Nie można używać
Static
wewnątrz procedury struktury.Nie można wywnioskować typów
Static
danych zmiennych lokalnych. Aby uzyskać więcej informacji, zobacz Wnioskowanie typu lokalnego.Modyfikatory połączone. Nie można określić
Static
razem zReadOnly
,Shadows
lubShared
w tej samej deklaracji.
Zachowanie
W przypadku deklarowania zmiennej statycznej w procedurze Shared
jest dostępna tylko jedna kopia zmiennej statycznej dla całej aplikacji. Procedura jest wywoływana Shared
przy użyciu nazwy klasy, a nie zmiennej wskazującej wystąpienie klasy.
Podczas deklarowania zmiennej statycznej w procedurze, która nie Shared
jest , tylko jedna kopia zmiennej jest dostępna dla każdego wystąpienia klasy. Procedura nieudzielona jest wywoływana przy użyciu zmiennej wskazującej określone wystąpienie klasy.
Przykład
W poniższym przykładzie pokazano użycie metody Static
.
Function updateSales(ByVal thisSale As Decimal) As Decimal
Static totalSales As Decimal = 0
totalSales += thisSale
Return totalSales
End Function
Zmienna Static
totalSales
jest inicjowana do wartości 0 tylko raz. Za każdym razem, gdy wprowadzasz updateSales
wartość , totalSales
nadal ma najnowszą wartość obliczoną dla niej.
Modyfikator Static
może być używany w tym kontekście: