.NET'te tür dönüştürme tabloları

Genişletme dönüştürmesi, bir tür değeri eşit veya daha büyük boyutta başka bir türe dönüştürüldüğünde gerçekleşir. Bir tür değeri daha küçük boyutlu başka bir türde bir değere dönüştürüldüğünde daraltma dönüştürmesi gerçekleşir. Bu konudaki tablolarda her iki dönüştürme türü tarafından sergilenen davranışlar gösterilmektedir.

Dönüştürmeleri genişletme

Aşağıdaki tabloda, bilgi kaybı olmadan gerçekleştirilebilecek genişletme dönüştürmeleri açıklanmaktadır.

Tür Veri kaybı olmadan dönüştürülebilir
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, UInt64, Double, Decimal
Int64 Decimal
UInt64 Decimal
Single Double

bazı genişletme dönüştürmeleri Single veya Double duyarlık kaybına neden olabilir. Aşağıdaki tabloda, bazen bilgi kaybına neden olan genişletme dönüştürmeleri açıklanmaktadır.

Tür Dönüştürülebilir
Int32 Single
UInt32 Single
Int64 Single, Double
UInt64 Single, Double
Decimal Single, Double

Dönüştürmeleri daraltma

veya için daraltma dönüştürmesi SingleDouble bilgi kaybına neden olabilir. Hedef tür kaynağın büyüklüğünü düzgün şekilde ifade edemiyorsa, sonuçta elde edilen tür veya NegativeInfinitysabitine PositiveInfinity ayarlanır. PositiveInfinitypozitif bir sayıyı sıfıra bölmenin sonucudur ve veya Double değeri alanın değerini SingleMaxValue aştığında da döndürülür. NegativeInfinitynegatif bir sayıyı sıfıra bölmenin sonucudur ve veya Double değeri alanın değerinin Single altına düştüğünde MinValue de döndürülür. 'den bir'e DoubleSingle dönüştürme işlemi veya NegativeInfinityile PositiveInfinity sonuçlanabilir.

Daraltma dönüştürmesi, diğer veri türleri için bilgi kaybına da neden olabilir. Ancak, dönüştürülen bir türün değeri hedef türün ve MinValue alanları tarafından belirtilen aralığın dışında kalırsa ve hedef türün MaxValue değerinin veya MinValuedeğerini aşmadığından MaxValue emin olmak için dönüştürme çalışma zamanı tarafından denetlenirse bir OverflowException oluşturulur. sınıfıyla System.Convert gerçekleştirilen dönüştürmeler her zaman bu şekilde denetlenmektedir.

Aşağıdaki tabloda, dönüştürülmekte olan türün değeri sonuçta elde edilen türün tanımlı aralığının dışındaysa, bir using System.Convert veya herhangi bir OverflowException işaretli dönüştürme oluşturan dönüştürmeler listelenmektedir.

Tür Dönüştürülebilir
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, , SByteInt16, 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

Ayrıca bkz.