Share via


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
Obligatoriska. 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 Obligatoriska. 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 Sharedalla konstanter , Staticoch ReadOnly. 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 datatypetar konstanten datatypen initializer. Om du anger både datatype och initializermåste datatypen initializer för vara konvertibel till datatype. Om varken datatype eller initializer finns, är datatypen som standard Object.

  • 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 gemensam As sats.

  • Initiering. Du måste initiera värdet för varje konstant i constantlist. Du använder initializer 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 som CByte och CShort. Du kan också använda AscW om du anropar den med en konstant String eller Char 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.

  • Kvalifikationer. 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 Objectger Visual Basic-kompilatorn den typen av initializeri 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.

Se även