Const-instructie (Visual Basic)
Declareert en definieert een of meer constanten.
Syntaxis
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
generator
attributelist
Optioneel. Lijst met kenmerken die van toepassing zijn op alle constanten die in deze instructie zijn gedeclareerd. Zie Lijst met kenmerken tussen punthaken ('<
' en ''>
).
accessmodifier
Optioneel. Gebruik deze optie om op te geven welke code toegang heeft tot deze constanten. Kan openbaar, beveiligd, vriend, beveiligde vriend, privé of privé beveiligd zijn.
Shadows
Optioneel. Gebruik dit om een programmeerelement opnieuw te declareren en te verbergen in een basisklasse. Zie schaduwen.
constantlist
Vereist. Lijst met constanten die in deze instructie worden gedeclareerd.
constant
[ ,
constant
... ]
Elk constant
heeft de volgende syntaxis en onderdelen:
constantname
[ As
datatype
] =
initializer
Onderdeel | Beschrijving |
---|---|
constantname |
Vereist. Naam van de constante. Zie Gedeclareerde elementnamen. |
datatype |
Vereist als Option Strict dat het is On . Gegevenstype van de constante. |
initializer |
Vereist. Expressie die wordt geëvalueerd tijdens het compileren en toegewezen aan de constante. |
Opmerkingen
Als u een waarde hebt die nooit verandert in uw toepassing, kunt u een benoemde constante definiëren en deze gebruiken in plaats van een letterlijke waarde. Een naam is gemakkelijker te onthouden dan een waarde. U kunt de constante slechts eenmaal definiëren en op veel plaatsen in uw code gebruiken. Als u in een latere versie de waarde opnieuw moet definiëren, is de Const
instructie de enige plaats waar u een wijziging moet aanbrengen.
U kunt alleen op module- of procedureniveau gebruiken Const
. Dit betekent dat de declaratiecontext voor een variabele een klasse, structuur, module, procedure of blok moet zijn en geen bronbestand, naamruimte of interface kan zijn. Zie Declaratiecontexten en standaardtoegangsniveaus voor meer informatie.
Lokale constanten (binnen een procedure) zijn standaard ingesteld op openbare toegang en u kunt geen toegangsaanpassingen gebruiken. Klasse- en modulelidconstanten (buiten elke procedure) worden standaard ingesteld op privétoegang en structuurlidconstanten zijn standaard ingesteld op openbare toegang. U kunt hun toegangsniveaus aanpassen met de toegangsaanpassingen.
Regels
Declaratiecontext. Een constante die buiten elke procedure op moduleniveau is gedeclareerd, is een lidconstante; het is lid van de klasse, structuur of module die deze declareert.
Een constante die op procedureniveau is gedeclareerd, is een lokale constante; deze is lokaal voor de procedure of het blok dat deze declareert.
Kenmerken. U kunt kenmerken alleen toepassen op lidconstanten, niet op lokale constanten. Een kenmerk draagt informatie bij aan de metagegevens van de assembly, wat niet zinvol is voor tijdelijke opslag, zoals lokale constanten.
Modifiers. Standaard zijn
Shared
alle constanten ,Static
enReadOnly
. U kunt geen van deze trefwoorden gebruiken bij het declareren van een constante.Op procedureniveau kunt u geen toegangsaanpassingen gebruiken
Shadows
om lokale constanten te declareren.Meerdere constanten. U kunt verschillende constanten declareren in dezelfde declaratie-instructie, waarbij u het
constantname
gedeelte voor elke declaratie opgeeft. Meerdere constanten worden gescheiden door komma's.
Regels voor gegevenstypen
Gegevenstypen. De
Const
instructie kan het gegevenstype van een variabele declareren. U kunt elk gegevenstype of de naam van een opsomming opgeven.Standaardtype. Als u dit niet opgeeft
datatype
, neemt de constante het gegevenstype .initializer
Als u beidedatatype
opgeeft eninitializer
, het gegevenstype vaninitializer
moet converteerbaar zijn naardatatype
. Als geen vaninitializer
beide aanwezigdatatype
is, wordt het gegevenstype standaard ingesteld opObject
.Verschillende typen. U kunt verschillende gegevenstypen voor verschillende constanten opgeven met behulp van een afzonderlijke
As
component voor elke variabele die u declareert. U kunt echter niet meerdere constanten van hetzelfde type declareren met behulp van een gemeenschappelijkeAs
component.Initialisatie. U moet de waarde van elke constante in
constantlist
initialiseren. U gebruiktinitializer
om een expressie op te geven die aan de constante moet worden toegewezen. De expressie kan elke combinatie zijn van letterlijke elementen, andere constanten die al zijn gedefinieerd en opsommingsleden die al zijn gedefinieerd. U kunt rekenkundige en logische operatoren gebruiken om dergelijke elementen te combineren.U kunt geen variabelen of functies gebruiken in
initializer
. U kunt echter conversietrefwoorden zoalsCByte
enCShort
. U kunt het ook gebruikenAscW
als u het aanroept met een constanteString
ofChar
argument, omdat dat tijdens het compileren kan worden geëvalueerd.
Gedrag
Reikwijdte. Lokale constanten zijn alleen toegankelijk vanuit hun procedure of blok. Lidconstanten zijn overal binnen hun klasse, structuur of module toegankelijk.
Kwalificatie. Code buiten een klasse, structuur of module moet de naam van een lidconstante kwalificeren met de naam van die klasse, structuur of module. Code buiten een procedure of blok kan niet verwijzen naar lokale constanten binnen die procedure of blok.
Voorbeeld 1
In het volgende voorbeeld wordt de Const
instructie gebruikt om constanten te declareren voor gebruik in plaats van letterlijke waarden.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Voorbeeld 2
Als u een constante definieert met het gegevenstypeObject
, geeft de Visual Basic-compiler het type , in plaats van initializer
Object
. In het volgende voorbeeld heeft de constante naturalLogBase
het runtimetype Decimal
.
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
In het voorgaande voorbeeld wordt de ToString methode gebruikt voor het Type object dat wordt geretourneerd door de GetType-operator, omdat Type deze niet kan worden geconverteerd naar String
.CStr