Static (Visual Basic)Static (Visual Basic)

Określa, że co najmniej jedna zadeklarowana zmienna lokalna ma nadal istnieć i zachować najnowsze wartości po zakończeniu procedury, w której zostały zadeklarowane.Specifies that one or more declared local variables are to continue to exist and retain their latest values after termination of the procedure in which they are declared.

UwagiRemarks

Zwykle zmienna lokalna w procedurze przestaje istnieć, gdy tylko procedura zostanie zatrzymana.Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. Zmienna statyczna nadal istnieje i zachowuje jej najnowszą wartość.A static variable continues to exist and retains its most recent value. Przy następnym wywoływaniu procedury przez kod zmienna nie zostanie zainicjowana i nadal będzie zawierać najnowszą wartość, którą przypisano do niej.The next time your code calls the procedure, the variable is not reinitialized, and it still holds the latest value that you assigned to it. Zmienna statyczna nadal istnieje dla okresu istnienia klasy lub modułu, w którym jest zdefiniowana.A static variable continues to exist for the lifetime of the class or module that it is defined in.

RegułyRules

  • Kontekst deklaracji.Declaration Context. Static można używać tylko w zmiennych lokalnych.You can use Static only on local variables. Oznacza to, że kontekst deklaracji dla zmiennej Static musi być procedurą lub blokiem procedury i nie może być plikiem źródłowym, przestrzenią nazw, klasą, strukturą ani modułem.This means the declaration context for a Static variable must be a procedure or a block in a procedure, and it cannot be a source file, namespace, class, structure, or module.

    Nie można użyć Static wewnątrz procedury struktury.You cannot use Static inside a structure procedure.

  • Nie można wywnioskować typów danych Static zmiennych lokalnych.The data types of Static local variables cannot be inferred. Aby uzyskać więcej informacji, zobacz temat wnioskowanie o typie lokalnym.For more information, see Local Type Inference.

  • Połączone modyfikatory.Combined Modifiers. Nie można określić Static razem z ReadOnly, Shadowslub Shared w tej samej deklaracji.You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.

ZachowanieBehavior

Po zadeklarowaniu zmiennej statycznej w procedurze Shared jest dostępna tylko jedna kopia zmiennej statycznej dla całej aplikacji.When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. Procedurę Shared można wywołać przy użyciu nazwy klasy, a nie zmiennej, która wskazuje na wystąpienie klasy.You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

Po zadeklarowaniu zmiennej statycznej w procedurze, która nie jest Shared, dla każdego wystąpienia klasy dostępna jest tylko jedna kopia zmiennej.When you declare a static variable in a procedure that isn't Shared, only one copy of the variable is available for each instance of the class. Procedurę nieudostępnioną można wywołać przy użyciu zmiennej, która wskazuje na konkretne wystąpienie klasy.You call a non-shared procedure by using a variable that points to a specific instance of the class.

PrzykładExample

Poniższy przykład ilustruje użycie Static.The following example demonstrates the use of 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 0 tylko raz.The Static variable totalSales is initialized to 0 only one time. Za każdym razem, gdy wprowadzasz updateSales, totalSales nadal ma ostatnio obliczoną wartość.Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

Modyfikator Static może być używany w tym kontekście:The Static modifier can be used in this context:

Dim, instrukcjaDim Statement

Zobacz takżeSee also