Sdílet prostřednictvím


Const-Anweisung (Visual Basic)

Aktualisiert: November 2007

Deklariert und definiert eine oder mehrere Konstanten.

[ <attributelist> ] [ accessmodifier ] [ Shadows ] 
Const constantlist

Bestandteile

  • attributelist
    Optional. Liste von Attributen, die für alle in dieser Anweisung deklarierten Konstanten zutreffen. Siehe Attributliste (in spitzen Klammern "<" und ">").

  • accessmodifier
    Optional. Geben Sie damit an, welcher Code auf diese Konstanten zugreifen kann. Kann Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), Protected Friend oder Private (Visual Basic) sein.

  • Shadows
    Optional. Verwenden Sie dieses Schlüsselwort, um ein Programmierelement in einer Basisklasse neu zu deklarieren und auszublenden. Siehe Shadows.

  • constantlist
    Erforderlich. Liste der Konstanten, die in dieser Anweisung deklariert werden.

    constant[ , constant ... ]

    Jede constant verfügt über folgende Syntax und folgende Bestandteile:

    constantname[ As datatype ] = initializer

    Bestandteil

    Beschreibung

    constantname

    Erforderlich. Name der Konstanten. Siehe Namen deklarierter Elemente.

    datatype

    Erforderlich, wenn Option Strict den Wert On hat. Datentyp der Konstanten.

    initializer

    Erforderlich. Ausdruck, der zur Kompilierzeit ausgewertet und dieser Konstante zugewiesen wird.

Hinweise

Wenn sich ein Wert in der Anwendung niemals ändert, können Sie eine benannte Konstante definieren und statt eines Literalwerts verwenden. Ein Name ist einprägsamer als ein Wert. Sie können die Konstante einmal definieren und an verschiedenen Stellen im Code verwenden. Wenn der Wert in einer neueren Version neu definiert werden muss, muss lediglich in der Const-Anweisung eine Änderung durchgeführt werden.

Const kann nur auf Modul- oder Prozedurebene verwendet werden. Dies bedeutet, dass der Deklarationskontext für eine Variable eine Klasse, eine Struktur, ein Modul, eine Prozedur oder ein Block sein muss und keine Quelldatei, kein Namespace und keine Schnittstelle sein kann. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.

Für lokale Konstanten (in einer Prozedur) gilt standardmäßig der öffentliche Zugriff. Für diese Konstanten können keine Zugriffsmodifizierer verwendet werden. Standardmäßig gilt für Klassen- und Modulmemberkonstanten (außerhalb einer Prozedur) privater Zugriff und für Strukturmemberkonstanten öffentlicher Zugriff. Sie können ihre Zugriffsebenen mit den Zugriffsmodifizierern anpassen.

Regeln

  • Deklarationskontext. Eine auf Modulebene deklarierte Konstante, die sich außerhalb jeglicher Prozedur befindet, ist eine Memberkonstante. Sie ist ein Member der Klasse, der Struktur oder des Moduls, in der/dem sie deklariert ist.

    Eine auf Prozedurebene deklarierte Konstante ist eine lokale Konstante. Sie ist nur lokal in der Prozedur oder dem Block gültig, in der/dem sie deklariert ist.

  • Attribute. Sie können Attribute nur auf Memberkonstanten und nicht auf lokale Konstanten anwenden. Ein Attribut fügt den Metadaten einer Assembly Informationen hinzu. Dies ist für die temporäre Speicherung, z. B. in lokalen Konstanten, nicht sinnvoll.

  • Modifizierer. Standardmäßig sind alle Konstanten Shared, Static und ReadOnly. Beim Deklarieren einer Konstante können Sie keines dieser Schlüsselwörter verwenden.

    Auf Prozedurebene können Sie zum Deklarieren lokaler Konstanten weder Shadows noch Zugriffsmodifizierer verwenden.

  • Mehrere Konstanten. Sie können mehrere Konstanten in derselben Deklarationsanweisung deklarieren, indem Sie für jede Konstante den Bestandteil constantname angeben. Mehrere Konstanten werden durch Komma voneinander 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 keinen datatype angeben, übernimmt die Konstante automatisch den Datentyp initializer. Wenn Sie sowohl datatype als auch initializer angeben, muss der Datentyp initializer in datatype konvertiert werden können. Wenn weder datatype noch initializer angegeben werden, wird standardmäßig Object als Datentyp verwendet.

  • Andere Typen. Sie können für verschiedene Konstanten unterschiedliche Datentypen angeben, indem Sie für jede deklarierte Variable eine eigene As-Klausel verwenden. Sie können jedoch nicht mit einer gemeinsamen As-Klausel denselben Typ für mehrere Konstanten deklarieren.

  • Initialisierung. Sie müssen den Wert jeder Konstante in constantlist initialisieren. Der initializer wird verwendet, um einen Ausdruck bereitzustellen, der der Konstante zugewiesen werden soll. Bei dem Ausdruck kann es sich um eine beliebige Kombination von Literalen, anderen bereits definierten Konstanten und bereits definierten Enumerationsmembern handeln. Zur Kombination dieser Elemente können Sie arithmetische und logische Operatoren verwenden.

    Variablen und Funktionen können in initializer nicht verwendet werden. Sie können jedoch Konvertierungsschlüsselwörter wie CByte und CShort verwenden. Sie können auch AscW verwenden, wenn der Aufruf mit einem konstanten String-Argument oder Char-Argument erfolgt, da dieses zur Kompilierzeit ausgewertet werden kann.

Verhalten

  • Bereich. Auf lokale Konstanten kann nur in ihrer Prozedur oder ihrem Block zugegriffen werden. Auf Memberkonstanten kann von jeder Stelle in ihrer Klasse, ihrer Struktur oder ihrem Modul zugegriffen werden.

  • Qualifizierung. Code außerhalb einer Klasse, einer Struktur oder eines Moduls muss den Namen einer Memberkonstanten mit dem Namen der Klasse, der Struktur bzw. des Moduls qualifizieren. Code außerhalb einer Prozedur oder eines Blocks kann auf keine lokalen Konstanten innerhalb dieser Prozedur bzw. Blocks verweisen.

Beispiel

Im folgenden Beispiel wird mit der Const-Anweisung die Verwendung von Konstanten anstelle von Literalwerten deklariert.

' The following statements declare constants. 
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5

Wenn Sie eine Konstante mit dem Datentyp Object definieren, weist ihr der Visual Basic-Compiler anstelle von Object den Typ initializer zu. Im folgenden Beispiel verfügt die Konstante naturalLogBase über den Laufzeittyp Decimal.

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 vom GetType-Operator zurückgegebene Type-Objekt verwendet, weil Type nicht mit CStr in String konvertiert werden kann.

Siehe auch

Konzepte

Implizite und explizite Konvertierungen

Systeminterne Konstanten und Enumerationen

Referenz

Enum-Anweisung (Visual Basic)

#Const-Direktive

Dim-Anweisung (Visual Basic)

ReDim-Anweisung (Visual Basic)

Funktionen für die Typkonvertierung

Die Funktionen "Asc" und "AscW"

Weitere Ressourcen

Konstanten und Enumerationen in Visual Basic