Dela via


Skriv konverteringstabeller i .NET

En utvidgad konvertering sker när ett värde av en typ konverteras till en annan typ som är lika stor eller större. En begränsad konvertering sker när ett värde av en typ konverteras till ett värde av en annan typ som har en mindre storlek. Tabellerna i det här avsnittet illustrerar de beteenden som visas av båda typerna av konverteringar.

Bredda konverteringar

I följande tabell beskrivs de bredare konverteringar som kan utföras utan förlust av information.

Typ Kan konverteras utan dataförlust till
Byte UInt16, Int16, UInt32, Int32, UInt64, Int64, , Single, , DoubleDecimal
SByte Int16, Int32, Int64, Single, , , DoubleDecimal
Int16 Int32, Int64, Single, , , DoubleDecimal
UInt16 UInt32, Int32, UInt64, Int64, Single, , , DoubleDecimal
Char UInt16, UInt32, Int32, UInt64, Int64, , Single, , DoubleDecimal
Int32 Int64, , DoubleDecimal
UInt32 Int64, UInt64, , DoubleDecimal
Int64 Decimal
UInt64 Decimal
Single Double

Vissa bredare konverteringar till Single eller Double kan orsaka förlust av precision. I följande tabell beskrivs de bredare konverteringar som ibland resulterar i förlust av information.

Typ Kan konverteras till
Int32 Single
UInt32 Single
Int64 Single, Double
UInt64 Single, Double
Decimal Single, Double

Begränsa konverteringar

En begränsad konvertering till Single eller Double kan orsaka informationsförlust. Om måltypen inte korrekt kan uttrycka källans storlek anges den resulterande typen till konstanten PositiveInfinity eller NegativeInfinity. PositiveInfinity resultat från att dividera ett positivt tal med noll och returneras också när värdet för ett Single eller Double överskrider värdet för fältet MaxValue . NegativeInfinity resultat från att dividera ett negativt tal med noll och returneras också när värdet för en Single eller Double understiger värdet för fältet MinValue . En konvertering från en Double till en Single kan resultera i PositiveInfinity eller NegativeInfinity.

En begränsad konvertering kan också leda till förlust av information för andra datatyper. Ett utlöses dock OverflowException om värdet för en typ som konverteras ligger utanför det intervall som anges av måltypens MaxValue och MinValue fälten, och konverteringen kontrolleras av körningen för att säkerställa att värdet för måltypen inte överskrider dess MaxValue eller MinValue. Konverteringar som utförs med System.Convert klassen kontrolleras alltid på det här sättet.

I följande tabell visas konverteringar som utlöser en OverflowException användningskonvertering System.Convert eller en markerad konvertering om värdet för den typ som konverteras ligger utanför det definierade intervallet för den resulterande typen.

Typ Kan konverteras till
Byte SByte
SByte Byte, UInt16, , UInt32UInt64
Int16 Byte, , SByteUInt16
UInt16 Byte, , SByteInt16
Int32 Byte, SByte, Int16, , , UInt16UInt32
UInt32 Byte, SByte, Int16, , , UInt16Int32
Int64 Byte, SByte, Int16, UInt16, Int32,UInt32,UInt64
UInt64 Byte, SByte, Int16, UInt16, Int32, , , UInt32Int64
Decimal Byte, SByte, Int16, UInt16, Int32, , UInt32, , Int64UInt64
Single Byte, SByte, Int16, UInt16, Int32, , UInt32, , Int64UInt64
Double Byte, SByte, Int16, UInt16, Int32, , UInt32, , Int64UInt64

Se även