Share via


Static (Visual Basic)

Legt fest, dass eine oder mehrere deklarierte lokale Variablen nach Beendigung der Prozedur, in der sie deklariert wurden, erhalten bleiben und die letzten Werte beibehalten.

Hinweise

Normalerweise wird eine lokale Variable einer Prozedur gelöscht, sobald die Prozedur beendet wird. Eine statische Variable bleibt erhalten und behält ihren letzten Wert bei. Beim nächsten Aufruf der Prozedur wird die Variable nicht neu initialisiert, sondern hat immer noch den Wert, der ihr zuletzt zugewiesen wurde. Eine statische Variable bleibt so lange bestehen, wie die Klasse oder das Modul, in der bzw. dem sie definiert wurde.

Regeln

  • Deklarationskontext. Sie können Static nur für lokale Variablen verwenden. Das bedeutet, dass der Deklarationskontext einer als Static deklarierten Variable eine Prozedur oder ein Block innerhalb einer Prozedur sein muss, nicht aber eine Quelldatei, ein Namespace, eine Klasse, eine Struktur oder ein Modul.

    Sie können Static nicht in einer Strukturprozedur verwenden.

  • Die Datentypen von lokalen Static-Variablen können nicht abgeleitet werden. Weitere Informationen finden Sie unter Lokaler Typrückschluss (Visual Basic).

  • Kombinierte Modifizierer. Static kann nicht zusammen mit ReadOnly, Shadows oder Shared in derselben Deklaration verwendet werden.

Verhalten

Wenn Sie eine statische Variable in einer Shared Prozedur deklarieren, nur eine Kopie der statischen Variablen für die gesamte Anwendung verfügbar ist. Zum Aufrufen einer Shared Prozedur an, indem Sie den Klassennamen keine Variable verwenden, die mit einer Instanz der Klasse verweist.

Wenn Sie eine statische Variable in einer Prozedur deklarieren, die nicht Shared nur eine Kopie der Variable für jede Instanz der Klasse verfügbar ist. Sie rufen eine nicht freigegebene Schritte an, indem Sie eine Variable verwenden, die einer bestimmten 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 mit dem Wert 0 (null) initialisiert. Bei jeder Ausführung von updateSales enthält totalSales den zuletzt berechneten Wert.

Der Static-Modifizierer kann in diesem Kontext verwendet werden:

Dim-Anweisung (Visual Basic)

Siehe auch

Referenz

Shadows (Visual Basic)

Shared (Visual Basic)

Konzepte

Lebensdauer in Visual Basic

Variablendeklaration in Visual Basic

Lokaler Typrückschluss (Visual Basic)

Weitere Ressourcen

Strukturen (Visual Basic)

Objekte und Klassen in Visual Basic