Static (Visual Basic)Static (Visual Basic)

Gibt an, dass eine oder mehrere deklarierte lokale Variablen weiterhin vorhanden sein müssen, und behält ihre aktuellen Werte nach der Beendigung der Prozedur bei, in der Sie deklariert wurden.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.

BemerkungenRemarks

Normalerweise ist eine lokale Variable in einer Prozedur nicht mehr vorhanden, sobald die Prozedur beendet wird.Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. Eine statische Variable ist weiterhin vorhanden und behält ihren letzten Wert bei.A static variable continues to exist and retains its most recent value. Wenn der Code das nächste Mal die Prozedur aufruft, wird die Variable nicht erneut initialisiert, und Sie enthält weiterhin den neuesten Wert, den Sie zugewiesen haben.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. Eine statische Variable ist für die Lebensdauer der Klasse oder des Moduls, in der Sie definiert ist, weiterhin vorhanden.A static variable continues to exist for the lifetime of the class or module that it is defined in.

RegelnRules

  • Deklarationskontext.Declaration Context. Sie können Static nur für lokale Variablen verwenden.You can use Static only on local variables. Dies bedeutet, dass der Deklarations Kontext für eine Static Variable eine Prozedur oder ein Block in einer Prozedur sein muss. es kann sich dabei nicht um eine Quelldatei, einen Namespace, eine Klasse, eine Struktur oder ein Modul handeln.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.

    Sie können nicht Static innerhalb einer Struktur Prozedur verwenden.You cannot use Static inside a structure procedure.

  • Die Datentypen Static lokaler Variablen können nicht abgeleitet werden.The data types of Static local variables cannot be inferred. Weitere Informationen finden Sie unter lokaler Typrückschluss.For more information, see Local Type Inference.

  • Kombinierte Modifizierer.Combined Modifiers. Sie können nicht Static mit ReadOnly , Shadows oder Shared in derselben Deklaration angeben.You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.

VerhaltenBehavior

Wenn Sie eine statische Variable in einer Prozedur deklarieren Shared , ist nur eine Kopie der statischen Variablen für die gesamte Anwendung verfügbar.When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. Sie können eine Shared Prozedur mit dem Klassennamen, nicht mit einer Variablen, die auf eine Instanz der-Klasse verweist, abrufen.You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

Wenn Sie in einer Prozedur, die nicht ist, eine statische Variable deklarieren Shared , ist nur eine Kopie der Variablen für jede Instanz der Klasse verfügbar.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. Sie können eine nicht freigegebene Prozedur mit einer Variablen aufzurufen, die auf eine bestimmte Instanz der-Klasse verweist.You call a non-shared procedure by using a variable that points to a specific instance of the class.

BeispielExample

Das folgende Beispiel veranschaulicht die Verwendung von 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

Die Static Variable totalSales wird nur einmal auf 0 initialisiert.The Static variable totalSales is initialized to 0 only one time. Jedes Mal, wenn Sie eingeben updateSales , totalSales hat immer noch den neuesten Wert, den Sie für ihn berechnet haben.Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

Der- Static Modifizierer kann in diesem Kontext verwendet werden:The Static modifier can be used in this context:

Dim-AnweisungDim Statement

Weitere InformationenSee also