Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ć
Statictylko w zmiennych lokalnych. Oznacza to, że kontekst deklaracji dlaStaticzmiennej 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ć
Staticwewnątrz procedury struktury.Nie można wywnioskować typów
Staticdanych zmiennych lokalnych. Aby uzyskać więcej informacji, zobacz Wnioskowanie typu lokalnego.Modyfikatory połączone. Nie można określić
Staticrazem zReadOnly,ShadowslubSharedw 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 Sharedjest , 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 StatictotalSales jest inicjowana do wartości 0 tylko raz. Za każdym razem, gdy wprowadzasz updateSaleswartość , totalSales nadal ma najnowszą wartość obliczoną dla niej.
Modyfikator Static może być używany w tym kontekście: