Const-instruktion (Visual Basic)
Deklarerar och definierar en eller flera konstanter.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Delar
attributelist
Valfritt. Lista över attribut som gäller för alla konstanter som deklareras i den här instruktionen. Se Attributlista inom vinkelparenteser ("<
" och ">
").
accessmodifier
Valfritt. Använd detta för att ange vilken kod som kan komma åt dessa konstanter. Kan vara offentlig, skyddad, vän, skyddad vän, privat eller privat skyddad.
Shadows
Valfritt. Använd det här alternativet för att omdeklarerat och dölja ett programmeringselement i en basklass. Se Skuggor.
constantlist
Obligatoriskt. Lista över konstanter som deklareras i den här instruktionen.
constant
[ ,
constant
... ]
Var constant
och en har följande syntax och delar:
constantname
[ As
datatype
] =
initializer
Delvis | beskrivning |
---|---|
constantname |
Obligatoriskt. Namn på konstanten. Se Deklarerade elementnamn. |
datatype |
Krävs om Option Strict är On . Datatyp för konstanten. |
initializer |
Obligatoriskt. Uttryck som utvärderas vid kompileringstid och tilldelas till konstanten. |
Kommentarer
Om du har ett värde som aldrig ändras i ditt program kan du definiera en namngiven konstant och använda den i stället för ett literalvärde. Ett namn är lättare att komma ihåg än ett värde. Du kan definiera konstanten bara en gång och använda den på många platser i koden. Om du i en senare version behöver omdefiniera värdet är -instruktionen Const
den enda plats där du behöver göra en ändring.
Du kan bara använda Const
på modul- eller procedurnivå. Det innebär att deklarationskontexten för en variabel måste vara en klass, struktur, modul, procedur eller block och får inte vara en källfil, ett namnområde eller ett gränssnitt. Mer information finns i Deklarationskontexter och standardåtkomstnivåer.
Lokala konstanter (inom en procedur) är standard för offentlig åtkomst och du kan inte använda några åtkomstmodifierare på dem. Klass- och modulmedlemskonstanter (utanför alla procedurer) är standard för privat åtkomst och strukturerar medlemskonstanter som standard för offentlig åtkomst. Du kan justera deras åtkomstnivåer med åtkomstmodifierarna.
Regler
Deklarationskontext. En konstant som deklareras på modulnivå, utanför någon procedur, är en medlemskonstant. Den är medlem i klassen, strukturen eller modulen som deklarerar den.
En konstant som deklareras på procedurnivå är en lokal konstant. Den är lokal för proceduren eller blocket som deklarerar den.
Attribut. Du kan endast tillämpa attribut på medlemskonstanter, inte på lokala konstanter. Ett attribut bidrar med information till sammansättningens metadata, vilket inte är meningsfullt för tillfällig lagring, till exempel lokala konstanter.
Modifierare. Som standard är
Shared
alla konstanter ,Static
ochReadOnly
. Du kan inte använda något av dessa nyckelord när du deklarerar en konstant.På procedurnivå kan du inte använda
Shadows
eller någon åtkomstmodifierare för att deklarera lokala konstanter.Flera konstanter. Du kan deklarera flera konstanter i samma deklarationssats och ange
constantname
delen för var och en. Flera konstanter avgränsas med kommatecken.
Regler för datatyp
Datatyper. -instruktionen
Const
kan deklarera datatypen för en variabel. Du kan ange valfri datatyp eller namnet på en uppräkning.Standardtyp. Om du inte anger
datatype
tar konstanten datatypeninitializer
. Om du anger bådedatatype
ochinitializer
måste datatypeninitializer
för vara konvertibel tilldatatype
. Om varkendatatype
ellerinitializer
finns, är datatypen som standardObject
.Olika typer. Du kan ange olika datatyper för olika konstanter med hjälp av en separat
As
sats för varje variabel som du deklarerar. Du kan dock inte deklarera att flera konstanter ska vara av samma typ med hjälp av en gemensamAs
sats.Initiering. Du måste initiera värdet för varje konstant i
constantlist
. Du använderinitializer
för att ange ett uttryck som ska tilldelas till konstanten. Uttrycket kan vara valfri kombination av literaler, andra konstanter som redan har definierats och uppräkningsmedlemmar som redan har definierats. Du kan använda aritmetiska och logiska operatorer för att kombinera sådana element.Du kan inte använda variabler eller funktioner i
initializer
. Du kan dock använda konverteringsnyckelord somCByte
ochCShort
. Du kan också användaAscW
om du anropar den med en konstantString
ellerChar
ett argument, eftersom det kan utvärderas vid kompileringstillfället.
Funktionssätt
Omfattning. Lokala konstanter är endast tillgängliga inifrån proceduren eller blocket. Medlemskonstanter är tillgängliga var som helst i sin klass, struktur eller modul.
Kvalifikation. Kod utanför en klass, struktur eller modul måste kvalificera en medlemskonstants namn med namnet på den klassen, strukturen eller modulen. Kod utanför en procedur eller ett block kan inte referera till några lokala konstanter inom den proceduren eller blocket.
Exempel 1
I följande exempel används -instruktionen Const
för att deklarera konstanter för användning i stället för literalvärden.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Exempel 2
Om du definierar en konstant med datatypen Object
ger Visual Basic-kompilatorn den typen av initializer
i stället för Object
. I följande exempel har konstanten naturalLogBase
körningstypen Decimal
.
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
I föregående exempel används ToString metoden för objektet Type som returneras av GetType-operatorn, eftersom Type det inte går att konvertera till att String
använda CStr
.