Konstanten und literale Datentypen (Visual Basic)
Ein Literal ist ein Wert, der als sich selbst und nicht als Wert einer Variablen oder als Ergebnis eines Ausdrucks ausgedrückt wird, z. B. die Zahl 3 oder die Zeichenfolge "Hello". Eine Konstante ist ein aussagekräftiger Name, der anstelle eines Literals denselben Wert im gesamten Programm behält, im Gegensatz zu einer Variablen, deren Wert sich ändern kann.
Wenn Option Infer ist Off
und Option Strict ist On
, müssen Sie alle Konstanten explizit mit einem Datentyp deklarieren. Im folgenden Beispiel wird der Datentyp von MyByte
explizit als Datentyp Byte
deklariert:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Wenn Option Infer
oder On
Option Strict
ist Off
, können Sie eine Konstante deklarieren, ohne einen Datentyp mit einer As
-Klausel anzugeben. Der Compiler bestimmt den Typ der Konstante aus dem Typ des Ausdrucks. Ein numerisches ganzzahliges Literal wird standardmäßig in den Integer
Datentyp umgewandelt. Der Standarddatentyp für Gleitkommazahlen ist Double
, und die Schlüsselwörter True
und False
geben eine Boolean
Konstante an.
Literale und Typkoercion
In einigen Fällen können Sie ein Literal auf einen bestimmten Datentyp erzwingen. beispielsweise beim Zuweisen eines besonders großen integralen Literalwerts zu einer Variablen vom Typ Decimal
. Im folgenden Beispiel wird ein Fehler erzeugt:
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
Der Fehler ergibt sich aus der Darstellung des Literals. Der Decimal
Datentyp kann einen So großen Wert enthalten, aber das Literal wird implizit als Long
dargestellt, was nicht möglich ist.
Sie können ein Literal auf zwei Arten an einen bestimmten Datentyp übertragen: indem Sie ein Typzeichen an ihn anfügen oder es in einschließende Zeichen platzieren. Ein Typzeichen oder umschließende Zeichen müssen dem Literal unmittelbar voran und/oder folgen, ohne zwischengeschaltete Leerzeichen oder Zeichen jeglicher Art.
Damit das vorherige Beispiel funktioniert, können Sie das D
Typzeichen an das Literal anfügen, wodurch es als Decimal
dargestellt wird:
Dim MyDecimal As Decimal = 100000000000000000000D
Das folgende Beispiel veranschaulicht die korrekte Verwendung von Typzeichen und eingeschlossenen Zeichen:
' Default to Integer.
Public Const DefaultInteger As Integer = 100
' Default to Double.
Public Const DefaultDouble As Double = 54.3345612
' Force constant to be type Char.
Public Const MyCharacter As Char = "a"c
' DateTime constants.
Public Const MyDate As DateTime = #1/15/2001#
Public Const MyTime As DateTime = #1:15:59 AM#
' Force data type to be Long.
Public Const MyLong As Long = 45L
' Force data type to be Single.
Public Const MySingle As Single = 45.55!
Die folgende Tabelle zeigt die in Visual Basic verfügbaren Umklammer- und Typzeichen.
Datentyp | Umschließendes Zeichen | Angefügtes Typzeichen |
---|---|---|
Boolean |
(none) | (none) |
Byte |
(none) | (none) |
Char |
" | C |
Date |
# | (none) |
Decimal |
(none) | D oder @ |
Double |
(none) | R oder # |
Integer |
(none) | I oder % |
Long |
(none) | L oder & |
Short |
(none) | E |
Single |
(none) | F oder ! |
String |
" | (none) |