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 nur für lokale Variablen verwenden Static . 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 nicht innerhalb einer Strukturprozedur verwenden Static .

  • Die Datentypen lokaler Static Variablen können nicht abgeleitet werden. Weitere Informationen finden Sie unter „Lokale Typinferenz“.

  • Kombinierte Modifizierer. Sie können nicht zusammen mit ReadOnly, Shadowsoder Shared in derselben Deklaration angebenStatic.

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 Sharedder Fall 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

Im folgenden Beispiel wird die Verwendung von Staticveranschaulicht.

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 ausführen updateSales, totalSales weist immer noch den aktuellsten Wert auf, den Sie dafür berechnet haben.

Der Static Modifizierer kann in diesem Kontext verwendet werden:

Dim-Anweisung

Siehe auch