Share via


Conversietabellen typen in .NET

De conversie wordt breder wanneer een waarde van het ene type wordt geconverteerd naar een ander type dat gelijk is aan of groter is. Een kleinere conversie treedt op wanneer een waarde van het ene type wordt geconverteerd naar een waarde van een ander type dat van een kleinere grootte is. De tabellen in dit onderwerp illustreren het gedrag van beide typen conversies.

Conversies breder maken

In de volgende tabel worden de verbrekingsconversies beschreven die zonder gegevensverlies kunnen worden uitgevoerd.

Type Kan worden geconverteerd zonder gegevensverlies naar
Byte UInt16, , UInt32Int16, Int32, , UInt64, Int64, DoubleSingleDecimal
SByte Int16, , Int32Int64, Single, , , DoubleDecimal
Int16 Int32Single, Int64, DoubleDecimal
UInt16 UInt32, , Int32UInt64, Int64, , Single, , DoubleDecimal
Char UInt16, , UInt32Int32, UInt64, , Int64, , SingleDoubleDecimal
Int32 Int64, , DoubleDecimal
UInt32 Int64, , , UInt64DoubleDecimal
Int64 Decimal
UInt64 Decimal
Single Double

Sommige verbrekingsconversies naar Single of Double kunnen leiden tot verlies van precisie. In de volgende tabel worden de verbrekingsconversies beschreven die soms leiden tot verlies van informatie.

Type Kan worden geconverteerd naar
Int32 Single
UInt32 Single
Int64 Single, Double
UInt64 Single, Double
Decimal Single, Double

Conversies beperken

Een vermalingsconversie naar Single of Double kan leiden tot verlies van informatie. Als het doeltype de grootte van de bron niet goed kan uitdrukken, wordt het resulterende type ingesteld op de constante PositiveInfinity of NegativeInfinity. PositiveInfinity resulteert in het delen van een positief getal door nul en wordt ook geretourneerd wanneer de waarde van een Single of Double meer waarde van het MaxValue veld is. NegativeInfinity resultaten van het delen van een negatief getal door nul en worden ook geretourneerd wanneer de waarde van een Single of Double lager is dan de waarde van het MinValue veld. Een conversie van een Double naar een Single kan leiden tot PositiveInfinity of NegativeInfinity.

Een narrowing conversie kan ook leiden tot verlies van informatie voor andere gegevenstypen. Er wordt echter een OverflowException gegenereerd als de waarde van een type dat wordt geconverteerd buiten het bereik valt dat is opgegeven door de doeltypen MaxValue en MinValue velden, en de conversie wordt gecontroleerd door de runtime om ervoor te zorgen dat de waarde van het doeltype niet groter is dan MaxValue of MinValue. Conversies die met de System.Convert klasse worden uitgevoerd, worden altijd op deze manier gecontroleerd.

De volgende tabel bevat conversies die een OverflowException gebruiks- System.Convert of een gecontroleerde conversie genereert als de waarde van het type dat wordt geconverteerd buiten het gedefinieerde bereik van het resulterende type valt.

Type Kan worden geconverteerd naar
Byte SByte
SByte Byte, , , UInt16UInt32UInt64
Int16 Byte, , SByteUInt16
UInt16 Byte, , SByteInt16
Int32 ByteInt16, SByte, UInt16UInt32
UInt32 ByteInt16, SByte, UInt16Int32
Int64 Byte, , SByteInt16, UInt16, , , Int32,UInt32UInt64
UInt64 Byte, , SByteInt16, UInt16, , Int32, , UInt32Int64
Decimal Byte, , SByteInt16, UInt16, , Int32, , UInt32Int64UInt64
Single Byte, , SByteInt16, UInt16, , Int32, , UInt32Int64UInt64
Double Byte, , SByteInt16, UInt16, , Int32, , UInt32Int64UInt64

Zie ook