Freigeben über


Datentypen von Operatorergebnissen

Aktualisiert: November 2007

Visual Basic bestimmt den Ergebnisdatentyp einer Operation anhand der Datentypen der Operanden. In einigen Fällen kann der Ergebnisdatentyp einen größeren Bereich haben als die Datentypen der beiden Operanden.

Datentypbereiche

Nachfolgend sind die Bereiche der relevanten Datentypen in der Reihenfolge von kleinsten zum größten aufgeführt:

  • Boolean – zwei mögliche Werte

  • SByte, Byte – 256 mögliche ganzzahlige Werte

  • Short, UShort – 65.536 (6,5... E+4) mögliche ganzzahlige Werte

  • Integer, UInteger – 4.294.967.296 (4,2... E+9) mögliche ganzzahlige Werte

  • Long, ULong – 18.446.744.073.709.551.615 (1,8... E+19) mögliche ganzzahlige Werte

  • Decimal – 1,5... E+29 mögliche ganzzahlige Werte, maximaler Bereich 7,9... E+28 (absoluter Wert)

  • Single – maximaler Bereich 3,4... E+38 (absoluter Wert)

  • Double – maximaler Bereich 1,7... E+308 (absoluter Wert)

Weitere Informationen zu den Datentypen von Visual Basic finden Sie unter Datentyp: Zusammenfassung (Visual Basic).

Wenn ein Operand Nothing ergibt, wird er von den arithmetischen Operatoren in Visual Basic wie 0 (null) behandelt.

Arithmetische Operationen mit dem Decimal-Datentyp

Beachten Sie, dass der Decimal-Datentyp weder Gleitkommazahlen noch ganze Zahlen darstellt.

Wenn ein Operand einer +-, –-, *-, /- oder Mod-Operation den Decimal-Datentyp aufweist und der andere Operand nicht den Single-Datentyp oder den Double-Datentyp, dann erweitert Visual Basic den anderen Operanden zum Decimal-Datentyp. Die Operation wird mit dem Decimal-Datentyp ausgeführt, und der Ergebnisdatentyp ist Decimal.

Gleitkommaarithmetik

Visual Basic führt den Großteil der Gleitkommaarithmetik mit dem Double-Datentyp aus, der für solche Operationen am effizientesten ist. Wenn ein Operand jedoch den Single-Datentyp und der andere den Double-Datentyp hat, führt Visual Basic die Operation unter Verwendung des Single-Datentyps aus. Vor der Operation wird jeder Operand nach Bedarf zum geeigneten Datentyp erweitert, und das Ergebnis hat diesen Datentyp.

Operatoren / und ^

Der /-Operator ist nur für die Datentypen Decimal, Single und Double definiert. Vor der Ausführung der Operation erweitert Visual Basic jeden Operanden bei Bedarf zum geeigneten Datentyp. Das Ergebnis weist den betreffenden Datentyp auf.

In der folgenden Tabelle werden die Ergebnisdatentypen für den /-Operator aufgeführt. Beachten Sie, dass diese Tabelle symmetrisch ist. Der Datentyp des Ergebnisses ist für jede gegebene Kombination von Operandendatentypen der gleiche und zwar unabhängig von der Reihenfolge der Operanden.

Decimal

Single

Double

Ein beliebiger ganzzahliger Typ

Decimal

Decimal

Single

Double

Double

Single

Single

Single

Double

Double

Double

Double

Double

Double

Double

Ein beliebiger ganzzahliger Typ

Double

Double

Double

Double

Der ^-Operator ist nur für den Double-Datentyp definiert. Visual Basic erweitert den Operanden vor der Operation bei Bedarf zu Double. Der Ergebnisdatentyp ist stets vom Typ Double.

Ganzzahlarithmetik

Der Ergebnisdatentyp einer Ganzzahloperation hängt von den Datentypen der Operanden ab. Im Allgemeinen wird in Visual Basic der Ergebnisdatentyp nach folgenden Richtlinien bestimmt:

  • Wenn beide Operanden eines binären Operators den gleichen Datentyp haben, weist das Ergebnis diesen Datentyp auf. Eine Ausnahme ist der Boolean-Datentyp, der in Short umgewandelt wird.

  • Wenn die Operation einen Operanden ohne Vorzeichen und einen Operanden mit Vorzeichen beinhaltet, ist das Ergebnis ein Datentyp mit Vorzeichen und einem Bereich, der mindestens genauso groß ist wie jeder der beiden Operanden.

  • Andernfalls hat das Ergebnis normalerweise den größeren Datentyp der beiden Operandendatentypen.

Beachten Sie, dass der Ergebnisdatentyp nicht dem Datentyp eines der beiden Operanden entsprechen muss.

Hinweis:

Der Ergebnisdatentyp ist nicht immer groß genug, um alle möglichen Ergebniswerte der Operation speichern zu können. Es kann eine OverflowException-Ausnahme auftreten, wenn der Wert für den Ergebnisdatentyp zu groß ist.

Unäre Operatoren + und –

Die folgende Tabelle enthält die Ergebnisdatentypen für die beiden unären Operatoren + und –.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Unäres +

Short

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Unäres –

Short

SByte

Short

Short

Integer

Integer

Long

Long

Decimal

Operatoren << und >>

Die folgende Tabelle enthält die Ergebnisdatentypen für den <<-Bitschiebeoperator und den >>-Bitverschiebungsoperator. Visual Basic behandelt jeden Bitschiebeoperator als unären Operator für den linken Operanden (das zu verschiebende Bitmuster).

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

<<, >>

Short

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Wenn der linke Operand den Datentyp Decimal, Single, Double oder String hat, versucht Visual Basic, den Datentyp vor der Operation in Long umzuwandeln. Das Ergebnis hat den Long-Datentyp. Der rechte Operand (die Anzahl der zu verschiebenden Bitpositionen) muss den Integer-Datentyp oder einen Typ haben, der zu Integer erweitert werden kann.

Binäre Operatoren + und –, *- und Mod-Operator

In der folgenden Tabelle sind die Ergebnisdatentypen der binären Operatoren + und – sowie des *-Operators und des Mod-Operators aufgeführt. Beachten Sie, dass diese Tabelle symmetrisch ist. Der Datentyp des Ergebnisses ist für jede gegebene Kombination von Operandendatentypen der gleiche und zwar unabhängig von der Reihenfolge der Operanden.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Boolean

Short

SByte

Short

Short

Integer

Integer

Long

Long

Decimal

SByte

SByte

SByte

Short

Short

Integer

Integer

Long

Long

Decimal

Byte

Short

Short

Byte

Short

UShort

Integer

UInteger

Long

ULong

Short

Short

Short

Short

Short

Integer

Integer

Long

Long

Decimal

UShort

Integer

Integer

UShort

Integer

UShort

Integer

UInteger

Long

ULong

Integer

Integer

Integer

Integer

Integer

Integer

Integer

Long

Long

Decimal

UInteger

Long

Long

UInteger

Long

UInteger

Long

UInteger

Long

ULong

Long

Long

Long

Long

Long

Long

Long

Long

Long

Decimal

ULong

Decimal

Decimal

ULong

Decimal

ULong

Decimal

ULong

Decimal

ULong

Operator \

In der folgenden Tabelle werden die Ergebnisdatentypen für den \-Operator aufgeführt. Beachten Sie, dass diese Tabelle symmetrisch ist. Der Datentyp des Ergebnisses ist für jede gegebene Kombination von Operandendatentypen der gleiche und zwar unabhängig von der Reihenfolge der Operanden.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Boolean

Short

SByte

Short

Short

Integer

Integer

Long

Long

Long

SByte

SByte

SByte

Short

Short

Integer

Integer

Long

Long

Long

Byte

Short

Short

Byte

Short

UShort

Integer

UInteger

Long

ULong

Short

Short

Short

Short

Short

Integer

Integer

Long

Long

Long

UShort

Integer

Integer

UShort

Integer

UShort

Integer

UInteger

Long

ULong

Integer

Integer

Integer

Integer

Integer

Integer

Integer

Long

Long

Long

UInteger

Long

Long

UInteger

Long

UInteger

Long

UInteger

Long

ULong

Long

Long

Long

Long

Long

Long

Long

Long

Long

Long

ULong

Long

Long

ULong

Long

ULong

Long

ULong

Long

ULong

Wenn ein Operand des \-Operators den Datentyp Decimal, Single oder Double hat, versucht Visual Basic vor der Operation, diesen Datentyp in Long umzuwandeln. Der Ergebnisdatentyp ist Long.

Relationale und bitweise Vergleiche

Der Ergebnisdatentyp einer relationalen Operation (=, <>, <, >, <=, >=) ist immer BooleanBoolean-Datentyp (Visual Basic). Dasselbe gilt für logische Operationen (And, AndAlso, Not, Or, OrElse, Xor) mit Operanden vom Boolean-Datentyp.

Der Ergebnisdatentyp einer bitweisen logischen Operation hängt von den Datentypen der Operanden ab. Beachten Sie, dass AndAlso und OrElse nur für Boolean definiert sind. Visual Basic konvertiert jeden Operanden bei Bedarf in Boolean, bevor die Operation ausgeführt wird.

Operatoren =, <>, <, >, <= und >=

Wenn beide Operanden vom Typ Boolean sind, gilt in Visual Basic der Wert True als kleiner als der Wert False. Wenn ein numerischer Typ mit einem String verglichen wird, versucht Visual Basic vor der Operation, den String-Operanden in den Double-Datentyp zu konvertieren. Ein Operand vom Typ Char oder Date kann nur mit einem anderen Operanden des gleichen Datentyps verglichen werden. Das Ergebnis hat immer den Boolean-Datentyp.

Bitweiser Not-Operator

In der folgenden Tabelle werden die Ergebnisdatentypen für den bitweisen Not-Operator aufgeführt.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Not

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Wenn der Operand den Datentyp Decimal, Single, Double oder String hat, versucht Visual Basic, den Datentyp vor der Operation in Long umzuwandeln. Das Ergebnis hat den Long-Datentyp.

Bitweise Operatoren And, Or und Xor

In der folgenden Tabelle werden die Ergebnisdatentypen für die bitweisen Operatoren And, Or und Xor aufgeführt. Beachten Sie, dass diese Tabelle symmetrisch ist. Der Datentyp des Ergebnisses ist für jede gegebene Kombination von Operandendatentypen der gleiche und zwar unabhängig von der Reihenfolge der Operanden.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Boolean

Boolean

SByte

Short

Short

Integer

Integer

Long

Long

Long

SByte

SByte

SByte

Short

Short

Integer

Integer

Long

Long

Long

Byte

Short

Short

Byte

Short

UShort

Integer

UInteger

Long

ULong

Short

Short

Short

Short

Short

Integer

Integer

Long

Long

Long

UShort

Integer

Integer

UShort

Integer

UShort

Integer

UInteger

Long

ULong

Integer

Integer

Integer

Integer

Integer

Integer

Integer

Long

Long

Long

UInteger

Long

Long

UInteger

Long

UInteger

Long

UInteger

Long

ULong

Long

Long

Long

Long

Long

Long

Long

Long

Long

Long

ULong

Long

Long

ULong

Long

ULong

Long

ULong

Long

ULong

Wenn ein Operand den Datentyp Decimal, Single, Double oder String hat, versucht Visual Basic, den Datentyp vor der Operation in Long umzuwandeln. Das Ergebnis hat den Datentyp, der sich ergäbe, wenn der Operand bereits den Long-Datentyp gehabt hätte.

Verschiedene Operatoren

Der &-Operator ist nur für die Verkettung von String-Operanden definiert. Visual Basic wandelt den Datentyp jedes Operanden vor der Operation bei Bedarf in String um. Das Ergebnis hat stets den String-Datentyp. Alle im Zusammenhang mit dem &-Operator durchgeführten Konvertierungen in den String-Datentyp werden als erweiternde Konvertierungen betrachtet, auch wenn Option Strict den Wert On hat.

Beim Is-Operator und beim IsNot-Operator müssen beide Operanden zum gleichen Verweistyp gehören. Beim TypeOf...Is-Ausdruck muss der erste Operand zu einem Verweistyp gehören und der zweite Operand den Namen eines Datentyps enthalten. In allen diesen Fällen ist der Ergebnisdatentyp Boolean.

Der Like-Operator ist nur für Mustervergleiche mit String-Operanden definiert. Visual Basic versucht, jeden Operanden bei Bedarf vor der Operation in den String-Datentyp zu konvertieren. Das Ergebnis hat immer den Boolean-Datentyp.

Siehe auch

Konzepte

Operatoren und Ausdrücke in Visual Basic

Arithmetische Operatoren in Visual Basic

Vergleichsoperatoren in Visual Basic

Referenz

Datentyp: Zusammenfassung (Visual Basic)

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität

Arithmetische Operatoren (Visual Basic)

Vergleichsoperatoren (Visual Basic)

Option Strict-Anweisung

Weitere Ressourcen

Operatoren (Visual Basic)