C# 中的类型转换可以分为两种:隐式转换和显式转换
隐式类型转换
隐式转换只存在于值类型中
隐式转换是指将小范围的数据类型转换为大范围的数据类型时,编译器会自动完成类型转换 (将int(4字节)转换成long(8字节)可以进行隐式转换)
int int1 = 10;// 4字节
long long1 = int1;// 8字节
//这种方法是就是隐式转换
显示转换类型
- 显式类型转换,即强制类型转换。
- 显式转换是指将大范围的数据类型转换为小范围的数据类型时,或者将一个对象类型转换为另一个对象类型时,需要使用强制类型转换符号进行显示转换,强制转换会造成数据丢失。
long long1 = 10;// 8字符
int int1 = (int)long1;// 4字符
// 从大转小需要显示转换
C# 类型转换方法
保留字 | 使用方法 | 保留字 | 使用方法 |
ToBoolean | 如果可能的话,把类型转换为布尔型。 | ToByte | 把类型转换为字节类型。 |
ToChar | 如果可能的话,把类型转换为单个 Unicode 字符类型。 | ToDateTime | 把类型(整数或字符串类型)转换为 日期-时间 结构。 |
ToDecimal | 把浮点型或整数类型转换为十进制类型。 | ToDouble | 把类型转换为双精度浮点型。 |
ToInt16 | 把类型转换为 16 位整数类型。 | ToInt32 | 把类型转换为 32 位整数类型。 |
ToInt64 | 把类型转换为 64 位整数类型。 | ToSbyte | 把类型转换为有符号字节类型。 |
ToSingle | 把类型转换为小浮点数类型。 | ToString | 把类型转换为字符串类型。 |
ToType | 把类型转换为指定类型。 | ToUInt16 | 把类型转换为 16 位无符号整数类型。 |
ToUInt32 | 把类型转换为 32 位无符号整数类型。 | ToUInt64 | 把类型转换为 64 位无符号整数类型。 |
| |||
资料部分来源:菜鸟教程 |
在进行类型转换时需要注意以下几点:
- 隐式转换只能将较小范围的数据类型转换为较大范围的数据类型,不能将较大范围的数据类型转换为较小范围的数据类型;
- 显式转换可能会导致数据丢失或精度降低,需要进行数据类型的兼容性检查;
- 对于对象类型的转换,需要进行类型转换的兼容性检查和类型转换的安全性检查。