Freigeben über


Datentypen von Operatorergebnissen (Visual Basic)

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.

ms235255.collapse_all(de-de,VS.110).gifOperatoren / und ^

Der /-Operator wird nur für die Datentypen Dezimal, Einfach und Doppelt definiert.Visual Basic erweitert jeden Operand nach Bedarf zum geeigneten Datentyp, und das Ergebnis hat diesen Datentyp.

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

Decimal

Single

Single

Single

Double

Single

Double

Double

Double

Double

Double

Ein beliebiger ganzzahliger Typ

Decimal

Single

Double

Double

Der ^-Operator wird nur für den Double-Datentyp definiert.Visual Basic erweitert jeden Operand wie nötig zu Double vor dem Vorgang, und der resultierende Datentyp ist immer 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.

HinweisHinweis

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.

ms235255.collapse_all(de-de,VS.110).gifUnä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

ms235255.collapse_all(de-de,VS.110).gifOperatoren << und >>

In der folgenden Tabelle sind die Ergebnisdatentypen für die beiden Bitschiebeoperatoren << und >> aufgeführt.Visual Basic behandelt jeden Bitschiebeoperator als unären Operator für seinen 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.

ms235255.collapse_all(de-de,VS.110).gifBinäre Operatoren '+' und '–', '*' und 'Mod'

In der folgenden Tabelle sind die Ergebnisdatentypen der binären Operatoren + und – sowie des Operators * und des Operators Mod 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

ms235255.collapse_all(de-de,VS.110).gifOperator \

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.

ms235255.collapse_all(de-de,VS.110).gifOperatoren =, <>, <, >, <= 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.

ms235255.collapse_all(de-de,VS.110).gifBitweiser Operator Not

In der folgenden Tabelle werden die Ergebnisdatentypen für den bitweisen Operator Not 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.

ms235255.collapse_all(de-de,VS.110).gifBitweise 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 wird nur für die Verkettung von String-Operanden definiert.Visual Basic konvertiert jeden Operand wie nötig zu String vor dem Vorgang, und der resultierende Datentyp ist immer String.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 Operator Is und beim Operator IsNot 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 wird nur für den Mustervergleich von String-Operanden definiert.Visual Basic versucht, vor dem Vorgang jeden Operanden nach Bedarf in String zu konvertieren.Das Ergebnis hat immer den Boolean-Datentyp.

Siehe auch

Referenz

Datentyp: Zusammenfassung (Visual Basic)

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität (Visual Basic)

Arithmetische Operatoren (Visual Basic)

Vergleichsoperatoren (Visual Basic)

Option Strict-Anweisung

Konzepte

Operatoren und Ausdrücke in Visual Basic

Arithmetische Operatoren in Visual Basic

Vergleichsoperatoren in Visual Basic

Weitere Ressourcen

Operatoren (Visual Basic)