Freigeben über


Static (Visual Basic)

Gibt an, dass eine oder mehrere deklarierte lokale Variablen weiterhin vorhanden sind und ihre neuesten Werte nach Beendigung der Prozedur beibehalten werden, in der sie deklariert werden.

Bemerkungen

Normalerweise ist eine lokale Variable in einer Prozedur nicht mehr vorhanden, sobald die Prozedur beendet wird. Eine statische Variable ist weiterhin vorhanden und behält ihren letzten Wert bei. 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 ihm zugewiesen haben. Eine statische Variable ist weiterhin für die Lebensdauer der Klasse oder des Moduls vorhanden, in der sie definiert ist.

Regeln

  • Deklarationskontext. Sie können Static nur für lokale Variablen verwenden. Dies bedeutet, dass der Deklarationskontext für eine Static-Variable eine Prozedur oder ein Block in einer Prozedur sein muss und es sich nicht um eine Quelldatei, einen Namespace, eine Klasse, eine Struktur oder ein Modul handeln kann.

    Sie können Static nicht innerhalb einer Strukturprozedur verwenden.

  • Die Datentypen lokaler Static-Variablen können nicht abgeleitet werden. Weitere Informationen finden Sie unter Lokaler Typrückschluss.

  • Kombinierte Modifizierer. Sie können Static nicht zusammen mit ReadOnly, Shadows oder Shared in derselben Deklaration angeben.

Verhalten

Wenn Sie eine statische Variable in einer Shared-Prozedur deklarieren, ist nur eine Kopie der statischen Variablen für die gesamte Anwendung verfügbar. Sie rufen eine Shared-Prozedur mithilfe des Klassennamens auf, keine Variable, die auf eine Instanz der Klasse verweist.

Wenn Sie eine statische Variable in einer Prozedur deklarieren, die nicht Shared ist, ist nur eine Kopie der Variablen für jede Instanz der Klasse verfügbar. Sie rufen eine nicht freigegebene Prozedur mithilfe einer Variablen auf, die auf eine bestimmte Instanz der Klasse verweist.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung von 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. Jedes Mal, wenn Sie die Eingabe updateSales ausführen, weist totalSales immer noch den aktuellsten Wert auf, den Sie dafür berechnet haben.

Der Static-Modifizierer kann im folgenden Kontext verwendet werden:

Dim-Anweisung

Siehe auch