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 dla Static 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 z ReadOnly, Shadowslub Shared 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 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:

Dim, instrukcja

Zobacz też