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
ReDim-Anweisung (Visual Basic)
Funktionen für die Typkonvertierung
Die Funktionen "Asc" und "AscW"