.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 NegativeInfinity
sabitine PositiveInfinity
ayarlanır. PositiveInfinity
pozitif 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. NegativeInfinity
negatif 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 NegativeInfinity
ile 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 MinValue
değ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 |