.NET学习——1.类型转换表
作者:互联网
内置类型(C# 参考)
下表列出了 C# 内置值类型:
下表列出了 C# 内置引用类型:
C# 类型关键字 | .NET 类型 |
---|---|
object |
System.Object |
string |
System.String |
dynamic |
System.Object |
扩大转换
下表列出了执行不会导致信息丢失的扩大转换。
类型 | 可在不丢失数据的情况下转换为 |
---|---|
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 |
一些目标为 Single 或 Double 的扩大转换可能会导致精度丢失。 下面的表格描述了有时会导致信息丢失的扩大转换。
类型 | 可转换为 |
---|---|
Int32 | Single |
UInt32 | Single |
Int64 | Single, Double |
UInt64 | Single, Double |
Decimal | Single, Double |
收缩转换
目标为 Single 或 Double 的收缩转换可能会导致信息丢失。 如果目标类型无法正确表达源类型的大小,则结果类型将设置为常数 PositiveInfinity
或 NegativeInfinity
。 PositiveInfinity
是正数除以 0 的结果,也在 Single 或 Double 的值大于 MaxValue
字段的值时返回。 NegativeInfinity
是负数除以 0 的结果,也在 Single 或 Double 的值小于 MinValue
字段的值时返回。 从 Double 转换到 Single 可能会导致 PositiveInfinity
或 NegativeInfinity
。
收缩转换还可能导致其他数据类型的信息丢失。 不过,如果要转换的类型值不在目标类型的 MaxValue
和 MinValue
字段指定的范围内,就会抛出 OverflowException,并且运行时会检查转换,以确保目标类型的值不超出它的 MaxValue
或 MinValue
。 始终以这种方式检查使用 System.Convert 类执行的转换。
下表列出了使用 System.Convert 抛出 OverflowException 的转换,或要转换类型的值不在生成类型的定义范围内的任何已检查转换。
类型 | 可转换为 |
---|---|
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 |
参考:
标签:类型转换,Int32,Double,System,学习,Single,Int64,NET,UInt32 来源: https://www.cnblogs.com/breakr-yu/p/16031252.html