Freigeben über


Konstanten und literale Datentypen (Visual Basic)

Ein Literal ist ein Wert, der sich selbst ausdrückt und nicht als Wert einer Variablen oder als Ergebnis eines Ausdrucks ausgedrückt wird, beispielsweise die Zahl 3 oder die Zeichenfolge "Hallo". Eine Konstante ist ein aussagekräftiger Name, der anstelle eines Literals verwendet wird. Im Unterschied zu einer Variablen, deren Wert sich ändern kann, ist der Wert einer Konstante während der Ausführung des Programms unveränderlich.

Wenn die Option "Infer" is Off und die Option "Strict" is On ist, müssen alle Konstanten explizit mit einem Datentyp deklariert werden. 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 On oder Option Strict is Off ist, können Sie eine Konstante ohne Angabe eines Datentyps mit einer As-Klausel deklarieren. Der Compiler bestimmt den Typ der Konstante anhand des Ausdruckstyps. Ein numerisches Ganzzahlliteral wird standardmäßig in den Datentyp Integer umgewandelt. Der Standarddatentyp für Gleitkommazahlen lautet Double, und die Schlüsselwörter True sowie False geben eine Boolean-Konstante an.

Literale und Typkonvertierung

In bestimmten Fällen kann es erforderlich sein, einen bestimmten Datentyp für ein Literal zu erzwingen. Dies ist beispielsweise der Fall, wenn Sie einem besonders großen Ganzzahlliteralwert eine Variable vom Typ Decimal zuweisen möchten. Das folgende Beispiel führt zu einem Fehler:

Dim myDecimal as Decimal
myDecimal = 100000000000000000000   ' This causes a compiler error.

Der Fehler resultiert aus der Literaldarstellung. Der Decimal-Datentyp kann einen Wert dieser Größe enthalten. Das Literal wird jedoch implizit als Long dargestellt. Dabei handelt es sich um einen Datentyp, der einen solchen Wert nicht enthalten kann.

Sie haben zwei Möglichkeiten zum Konvertieren eines Literals in einen bestimmten Datentyp: indem Sie ein Typzeichen anhängen oder das Literal in Zeichen einschließen. Ein Typzeichen oder umschließende Zeichen müssen dem Literal unmittelbar vorangehen und/oder folgen. Leerzeichen oder andere Zeichen dürfen also nicht dazwischen stehen.

Zur Korrektur des vorherigen Beispiels hängen Sie das Typzeichen D an das Literal an. Dadurch wird das Literal als Decimal dargestellt:

Dim MyDecimal As Decimal = 100000000000000000000D

Das folgende Beispiel demonstriert die richtige Verwendung von Typzeichen und umschließenden 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!

In der folgenden Tabelle finden Sie die in Visual Basic zur Verfügung stehenden umschließenden Zeichen und Typzeichen.

Datentyp

Umschließendes Zeichen

Angehängtes Typzeichen

Boolean

(kein)

(keine)

Byte

(kein)

(kein)

Char

"

C

Date

#

(kein)

Decimal

(kein)

D oder @

Double

(kein)

R oder #

Integer

(kein)

I oder %

Long

(kein)

L oder &

Short

(kein)

S

Single

(kein)

F oder !

String

"

(kein)

Siehe auch

Aufgaben

Gewusst wie: Deklarieren einer Konstante (Visual Basic)

Gewusst wie: Deklarieren einer Enumeration (Visual Basic)

Referenz

Option Strict-Anweisung

Option Explicit-Anweisung (Visual Basic)

Datentyp: Zusammenfassung (Visual Basic)

Konzepte

Benutzerdefinierte Konstanten (Visual Basic)

Übersicht über Konstanten (Visual Basic)

Übersicht über Enumerationen (Visual Basic)

Enumerationen und Namensqualifikation (Visual Basic)

Konstanten und Enumerationen (Visual Basic)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Mai 2011

Informationen zu Typableitungen wurden geändert.

Korrektur inhaltlicher Fehler.