Procedure: Een variabele maken die niet verandert in waarde (Visual Basic)

Het idee van een variabele die de waarde ervan niet wijzigt, lijkt tegenstrijdig te zijn. Maar er zijn situaties waarin een constante niet haalbaar is en het handig is om een variabele met een vaste waarde te hebben. In dat geval kunt u een lidvariabele definiëren met het trefwoord ReadOnly .

U kunt de Const-instructie niet gebruiken om een constante waarde in de volgende omstandigheden te declareren en toe te wijzen:

  • De Const instructie accepteert niet het gegevenstype dat u wilt gebruiken

  • U weet de waarde tijdens het compileren niet

  • U kunt de constante waarde tijdens het compileren niet berekenen

Een variabele maken die niet in waarde verandert

  1. Declareer op moduleniveau een lidvariabele met de Dim-instructie en gebruik het trefwoord ReadOnly.

    Dim ReadOnly timeStarted
    

    U kunt alleen opgeven ReadOnly voor een lidvariabele. Dit betekent dat u de variabele moet definiëren op moduleniveau, buiten een procedure.

  2. Als u de waarde in één instructie tijdens het compileren kunt berekenen, gebruikt u een initialisatiecomponent in de Dim instructie. Volg de As-clausule met een gelijkteken (=), gevolgd door een uitdrukking. Zorg ervoor dat de compiler deze expressie kan evalueren naar een constante waarde.

    Dim ReadOnly timeStarted As Date = Now
    

    U kunt een waarde slechts één keer toewijzen aan een ReadOnly variabele. Zodra u dit hebt uitgevoerd, kan er geen code de waarde ervan wijzigen.

    Als u de waarde tijdens het compileren niet kent of deze niet tijdens het compileren in één instructie kunt berekenen, kunt u deze nog steeds toewijzen tijdens runtime in een constructor. Hiervoor moet u de ReadOnly variabele declareren op klasse- of structuurniveau. In de constructor voor die klasse of structuur berekent u de vaste waarde van de variabele en wijst u deze toe aan de variabele voordat u terugkeert van de constructor.

Zie ook