Freigeben über


Typkonvertierungstabellen

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.

Erweiternde Konvertierungen

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 einer verringerten Genauigkeit 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

Eingrenzende Konvertierungen

Eine Eingrenzungskonvertierung in Single oder Double können zu einem 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 oder NegativeInfinity. Der Wert PositiveInfinity ist das Ergebnis der Division einer positiven Zahl durch 0 (null) und wird auch dann zurückgegeben, wenn der Wert von 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 auch dann zurückgegeben, wenn der Wert von Single oder Double kleiner ist als der Wert des MinValue-Felds. Eine Konvertierung von Double in Single kann zu PositiveInfinity oder NegativeInfinity führen.

Eine Eingrenzungskonvertierung kann auch bei anderen Datentypen zu Informationsverlust führen. Wenn der Wert eines Typs, der konvertiert wird, jedoch außerhalb des Bereichs liegt, der vom MaxValue-Feld und vom MinValue-Feld des Zieltyps angegeben wird, wird eine OverflowException ausgelöst. Außerdem wird die Konvertierung von der Common Language Runtime überprüft, um sicherzustellen, dass der Wert des Zieltyps nicht größer als MaxValue oder kleiner als MinValue ist. Eine solche Überprüfung wird bei Konvertierungen, die mithilfe der System.Convert-Klasse durchgeführt wurden, immer vorgenommen.

Die folgende Tabelle enthält die Konvertierungen, die eine OverflowException mit System.Convert oder irgendein geprüftes Konvertierungsverfahren auslösen, wenn der Wert des konvertierten Typs außerhalb des definierten Bereichs des resultierenden Typs 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

Konzepte

Typkonvertierung in .NET Framework