Delen via


Statisch (Visual Basic)

Hiermee geeft u op dat een of meer gedeclareerde lokale variabelen blijven bestaan en de meest recente waarden behouden na beëindiging van de procedure waarin ze worden gedeclareerd.

Opmerkingen

Normaal gesproken bestaat een lokale variabele in een procedure niet meer zodra de procedure stopt. Een statische variabele blijft bestaan en behoudt de meest recente waarde. De volgende keer dat de code de procedure aanroept, wordt de variabele niet opnieuw geïnitialiseerd en bevat deze nog steeds de meest recente waarde die u eraan hebt toegewezen. Er blijft een statische variabele bestaan voor de levensduur van de klasse of module waarin deze is gedefinieerd.

Regels

  • Declaratiecontext. U kunt alleen lokale variabelen gebruiken Static . Dit betekent dat de declaratiecontext voor een Static variabele een procedure of een blok in een procedure moet zijn en dat het geen bronbestand, naamruimte, klasse, structuur of module kan zijn.

    U kunt niet binnen een structuurprocedure gebruiken Static .

  • De gegevenstypen van Static lokale variabelen kunnen niet worden afgeleid. Zie Deductie van lokaal type voor meer informatie.

  • Gecombineerde modifiers. U kunt niet samen metReadOnly, Shadowsof Shared in dezelfde declaratie opgevenStatic.

Gedrag

Wanneer u een statische variabele in een Shared procedure declareert, is er slechts één kopie van de statische variabele beschikbaar voor de hele toepassing. U roept een Shared procedure aan met behulp van de klassenaam, niet een variabele die verwijst naar een exemplaar van de klasse.

Wanneer u een statische variabele declareert in een procedure die niet Sharedis, is er slechts één kopie van de variabele beschikbaar voor elk exemplaar van de klasse. U roept een niet-gedeelde procedure aan met behulp van een variabele die verwijst naar een specifiek exemplaar van de klasse.

Opmerking

In het volgende voorbeeld ziet u het gebruik van Static.

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

De Static variabele totalSales wordt slechts één keer geïnitialiseerd tot 0. Telkens wanneer u invoert updateSales, totalSales heeft u nog steeds de meest recente waarde die u hiervoor hebt berekend.

De Static wijzigingsfunctie kan in deze context worden gebruikt:

Dim-instructie

Zie ook