Freigeben über


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 Bytedeklariert:

Option Strict On

Public Class Sample
  Public Const MyByte As Byte = 2
End Class

Wenn Option Infer oder OnOption 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 Longdargestellt, 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 Decimaldargestellt 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)

Siehe auch