Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Deklariert und definiert eine oder mehrere Konstanten.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Bestandteile
attributelist
Wahlfrei. Liste der Attribute, die für alle in dieser Anweisung deklarierten Konstanten gelten. Siehe Attributliste in eckigen Klammern ("<" und ">").
accessmodifier
Wahlfrei. Verwenden Sie diese Informationen, um anzugeben, welcher Code auf diese Konstanten zugreifen kann. Kann öffentlich, geschützt, Freund, geschützter Freund, privat oder privat geschützt sein.
Shadows
Wahlfrei. Verwenden Sie dies, um ein Programmierelement in einer Basisklasse neu einzuschließen und auszublenden. Siehe Schatten.
constantlist
Erforderlich. Liste der Konstanten, die in dieser Anweisung deklariert werden.
constant
[ ,
constant
... ]
Jede constant weist die folgende Syntax und Teile auf:
constantname
[ As
datatype
] =
initializer
| Teil | BESCHREIBUNG |
|---|---|
constantname |
Erforderlich. Der Name der Konstante. Siehe deklarierte Elementnamen. |
datatype |
Erforderlich, wenn Option StrictOn ist. Datentyp der Konstante. |
initializer |
Erforderlich. Ausdruck, der zur Kompilierungszeit ausgewertet und der Konstante zugewiesen ist. |
Bemerkungen
Wenn Sie einen Wert haben, der sich nie in Ihrer Anwendung ändert, können Sie eine benannte Konstante definieren und anstelle eines Literalwerts verwenden. Ein Name ist einfacher zu merken als ein Wert. Sie können die Konstante nur einmal definieren und an vielen Stellen im Code verwenden. Wenn Sie in einer späteren Version den Wert neu definieren müssen, ist die Const Anweisung der einzige Ort, an dem Sie eine Änderung vornehmen müssen.
Sie können nur auf Modul- oder Prozedurebene verwenden Const . Dies bedeutet, dass der Deklarationskontext für eine Variable eine Klasse, Struktur, ein Modul, eine Prozedur oder ein Block sein muss und keine Quelldatei, ein Namespace oder eine Schnittstelle sein kann. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.
Lokale Konstanten (innerhalb einer Prozedur) werden standardmäßig für den öffentlichen Zugriff verwendet, und Sie können keine Zugriffsmodifizierer verwenden. Klassen- und Modulmemmemstkonstanten (außerhalb einer Prozedur) werden standardmäßig für den privaten Zugriff verwendet, und Strukturmememstanten werden standardmäßig für den öffentlichen Zugriff verwendet. Sie können ihre Zugriffsebenen mit den Zugriffsmodifizierern anpassen.
Regeln
Deklarationskontext. Eine auf Modulebene deklarierte Konstante außerhalb einer Prozedur ist eine Memberkonstante; es ist ein Element der Klasse, Struktur oder des Moduls, das sie deklariert.
Eine auf Prozedurebene deklarierte Konstante ist eine lokale Konstante; es ist lokal für die Prozedur oder den Block, der sie deklariert.
Attribute Sie können Attribute nur auf Memberkonstanten anwenden, nicht auf lokale Konstanten. Ein Attribut trägt Informationen zu den Metadaten der Assembly bei, was für temporären Speicher wie lokale Konstanten nicht sinnvoll ist.
Modifizierer. Standardmäßig sind
Sharedalle Konstanten ,StaticundReadOnly. Sie können keine dieser Schlüsselwörter verwenden, wenn Sie eine Konstante deklarieren.Auf Prozedurebene können Sie keine Zugriffsmodifizierer verwenden
Shadows, um lokale Konstanten zu deklarieren.Mehrere Konstanten. Sie können mehrere Konstanten in derselben Deklarationsanweisung deklarieren, wobei Sie den
constantnameTeil für jeden angeben. Mehrere Konstanten werden durch Kommas getrennt.
Datentypregeln
Datentypen. Die
ConstAnweisung kann den Datentyp einer Variablen deklarieren. Sie können einen beliebigen Datentyp oder den Namen einer Enumeration angeben.Standardtyp. Wenn Sie nicht angeben
datatype, übernimmt die Konstante den Datentyp voninitializer. Wenn Sie sowohl angeben alsinitializerauchdatatype, muss der Datentypinitializerindatatype. Wenn wederdatatypevorhanden nochinitializervorhanden ist, wird der Datentyp standardmäßig aufObject.Verschiedene Typen. Sie können unterschiedliche Datentypen für unterschiedliche Konstanten angeben, indem Sie für jede variable, die Sie deklarieren, eine separate
AsKlausel verwenden. Sie können jedoch nicht mehrere Konstanten mit demselben Typ deklarieren, indem Sie eine gemeinsameAsKlausel verwenden.Initialisierung. Sie müssen den Wert jeder Konstante initialisieren in
constantlist. Sie verwendeninitializerdie Angabe eines Ausdrucks, der der Konstante zugewiesen werden soll. Der Ausdruck kann eine beliebige Kombination aus Literalen, anderen bereits definierten Konstanten und Bereits definierten Enumerationsmembern sein. Sie können arithmetische und logische Operatoren verwenden, um solche Elemente zu kombinieren.Variablen oder Funktionen können nicht in
initializer. Sie können jedoch Konvertierungsstichwörter wieCByteundCShort. Sie können sie auch verwendenAscW, wenn Sie sie mit einer KonstanteStringoderChareinem Argument aufrufen, da dies zur Kompilierungszeit ausgewertet werden kann.
Verhalten
Bereich. Auf lokale Konstanten kann nur innerhalb ihrer Prozedur oder ihres Blocks zugegriffen werden. Auf Memberkonstanten kann von überall innerhalb ihrer Klasse, Struktur oder ihres Moduls zugegriffen werden.
Qualifikation. Code außerhalb einer Klasse, Struktur oder eines Moduls muss den Namen einer Memberkonstante mit dem Namen dieser Klasse, Struktur oder dieses Moduls qualifizieren. Code außerhalb einer Prozedur oder eines Blocks kann nicht auf lokale Konstanten innerhalb dieser Prozedur oder eines Blocks verweisen.
Beispiel 1
Im folgenden Beispiel wird die Const Anweisung verwendet, um Konstanten für die Verwendung anstelle von Literalwerten zu deklarieren.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Beispiel 2
Wenn Sie eine Konstante mit dem Datentyp Objectdefinieren, gibt der Visual Basic-Compiler den Typ von initializer, anstelle von Object. Im folgenden Beispiel weist die Konstante naturalLogBase den Laufzeittyp Decimalauf.
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
Im vorherigen Beispiel wird die ToString Methode für das objekt verwendet, das Type vom GetType-Operator zurückgegeben wird, da Type sie nicht in die Verwendung CStrkonvertiert String werden kann.