Freigeben über


Const-Anweisung (Visual Basic)

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 , Staticund ReadOnly. 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 constantname Teil für jeden angeben. Mehrere Konstanten werden durch Kommas getrennt.

Datentypregeln

  • Datentypen. Die Const Anweisung 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 von initializer. Wenn Sie sowohl angeben als initializerauchdatatype, muss der Datentyp initializer in datatype. Wenn weder datatype vorhanden noch initializer vorhanden ist, wird der Datentyp standardmäßig auf Object.

  • Verschiedene Typen. Sie können unterschiedliche Datentypen für unterschiedliche Konstanten angeben, indem Sie für jede variable, die Sie deklarieren, eine separate As Klausel verwenden. Sie können jedoch nicht mehrere Konstanten mit demselben Typ deklarieren, indem Sie eine gemeinsame As Klausel verwenden.

  • Initialisierung. Sie müssen den Wert jeder Konstante initialisieren in constantlist. Sie verwenden initializer die 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 wie CByte und CShort. Sie können sie auch verwenden AscW , wenn Sie sie mit einer Konstante String oder Char einem 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.

Siehe auch