1、隐式类型转换
隐式类型转换是由 C# 以类型安全的方式执行的,转换的过程中不会导致数据丢失,例如从较小的整数类型(例如 int)转换到较大的整数类型(例如 long),从派生类转换为基类。
隐式转换不需要我们编写额外的代码,下例中演示了如何使用隐式类型转换的方式将 int 类型的数据转换成 double 类型:
int a = 10;
double b = a;
提示:一种数据类型(类型 A),只要其取值范围完全包含在另一种数据类型(类型 B)的取值范围内,那么类型 A 就可以隐式转换为类型 B。基于这一特性,C# 的隐式类型转换不会导致数据丢失。
2、显式类型转换
显式类型转换也叫强制类型转换,这种转换需要使用(type)value
的形式或者预定义函数显式的完成,显式转换需要用户明确的指定要转换的类型,而且在转换的过程中可能会造成数据丢失,例如将 double 类型转换为 int 类型。
C# 中还提供了一系列内置的类型转换方法,如下表所示:
方法 | 描述 |
---|---|
ToBoolean | 将类型转换为布尔型 |
ToByte | 将类型转换为字节类型 |
ToChar | 将类型转换为单个 Unicode 字符类型 |
ToDateTime | 将类型(整数或字符串类型)转换为日期时间的结构 |
ToDecimal | 将浮点型或整数类型转换为十进制类型 |
ToDouble | 将类型转换为双精度浮点型 |
ToInt16 | 将类型转换为 16 位整数类型 |
ToInt32 | 将类型转换为 32 位整数类型 |
ToInt64 | 将类型转换为 64 位整数类型 |
ToSbyte | 将类型转换为有符号字节类型 |
ToSingle | 将类型转换为小浮点数类型 |
ToString | 将类型转换为字符串类型 |
ToType | 将类型转换为指定类型 |
ToUInt16 | 将类型转换为 16 位无符号整数类型 |
ToUInt32 | 将类型转换为 32 位无符号整数类型 |
ToUInt64 | 将类型转换为 64 位无符号整数类型 |