Typkonvertierungstabellen

Aktualisiert: November 2007

Eine Erweiterungskonvertierung liegt vor, wenn der Wert eines bestimmten Typs in einen anderen, mindestens ebenso großen Typ konvertiert wird. Eine Eingrenzungskonvertierung liegt vor, wenn ein Wert eines bestimmten Typs in einen anderen, kleineren Typ konvertiert wird. Die Tabellen zu diesem Thema veranschaulichen die Besonderheiten und Merkmale beider Konvertierungsarten.

Erweiterungskonvertierungen

In der folgenden Tabelle werden die Erweiterungskonvertierungen aufgelistet, die ohne Datenverlust durchgeführt werden können.

Typ

Kann ohne Datenverlust konvertiert werden in

Byte

UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Sbyte

Int16, Int32, Int64, Single, Double, Decimal

Int16

Int32, Int64, Single, Double, Decimal

UInt16

UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Char

UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Int32

Int64, Double, Decimal

UInt32

Int64, Double, Decimal

Int64

Decimal

UInt64

Decimal

Single

Double

Einige Erweiterungskonvertierungen in Single oder Double können zu Informationsverlusten führen. Die folgende Tabelle enthält diejenigen Erweiterungskonvertierungen, die u. U. zum Verlust von Informationen führen können.

Typ

Kann konvertiert werden in

Int32

Single

UInt32

Single

Int64

Single, Double

UInt64

Single, Double

Decimal

Single, Double

Eingrenzungskonvertierungen

Eine Eingrenzungskonvertierung in Single oder Double kann zum Verlust von Informationen führen. Ist der Wert des Ausgangstyps größer als der des Zieltyps und kann daher nicht korrekt ausgedrückt werden, erhält der Zieltyp als Wert die Konstante PositiveInfinity bzw. NegativeInfinity. Der Wert PositiveInfinity ist das Ergebnis der Division einer positiven Zahl durch 0 (null) und wird dann zurückgegeben, wenn der Wert eines Single oder Double größer ist als der Wert des MaxValue-Felds. Der Wert NegativeInfinity ist das Ergebnis der Division einer negativen Zahl durch 0 (null) und wird dann zurückgegeben, wenn der Wert eines Single oder Double kleiner ist als der Wert des MinValue-Felds. Eine Konvertierung von Double in einen Single kann in einer PositiveInfinity oder NegativeInfinity resultieren.

Eine Eingrenzungskonvertierung kann auch bei anderen Datentypen zu Informationsverlust führen. Liegt jedoch der Wert des zu konvertierenden Typs außerhalb des Bereichs, der durch das MaxValue-Feld und das MinValue-Feld des Zieltyps bestimmt wird, wird eine OverflowException ausgelöst, wenn die Common Language Runtime die Konvertierung dahingehend prüft, ob der Wert des Zieltyps MaxValue oder MinValue übersteigt. Eine solche Überprüfung wird bei Konvertierungen, die mithilfe der System.Convert-Klasse durchgeführt wurden, immer vorgenommen. Informationen über das Durchführen von geprüften Konvertierungen ohne Verwendung der System.Convert-Klasse finden Sie im Abschnitt über explizite Konvertierung.

Die folgende Tabelle enthält die Konvertierungen, die eine OverflowException verursachen, sobald die System.Convert-Klasse oder irgendein geprüftes Konvertierungsverfahren verwendet wird und der Wert des konvertierten Typs außerhalb des zulässigen Bereichs des Zieltyps liegt.

Typ

Kann konvertiert werden in

Byte

Sbyte

SByte

Byte, UInt16, UInt32, UInt64

Int16

Byte, SByte, UInt16

UInt16

Byte, SByte, Int16

Int32

Byte, SByte, Int16, UInt16, UInt32

UInt32

Byte, SByte, Int16, UInt16, Int32

Int64

Byte, SByte, Int16, UInt16, Int32, UInt32, UInt64

UInt64

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64

Decimal

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

Single

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

Double

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

Siehe auch

Referenz

System.Convert

Weitere Ressourcen

Konvertieren von Typen