.net中的类型转换

类型转换

1、预定义

1.1 数字之间
  1. 显式:高精度 -> 低精度(概况描述,不准确)
  2. 隐式:低精度 -> 高精度(概况描述,不准确)
  3. 使用checked、unchecked关键字指定是否检测结果溢出。
1.2 引用之间
  1. 显式:父类 -> 子类
  2. 隐式:子类 -> 父类
  3. 使用is关键字判断Source Type是否可以被转换为Target Type(方式:引用转换、装箱、拆箱,不能用于用户自定义转换)。
  4. 使用as关键字将Source Type转换为Target Type(方式:引用转换、装箱,不能用于用户自定义转换;失败返回null,不抛出异常)。
1.3 数字与引用之间
  1. 装箱:值类型 -> 引用类型
  2. 拆箱:引用类型 -> 值类型

2、自定义

使用implicit、explicit关键字定义转换。

  1. Source Type 与 Target Type不能为同一类型。
  2. Source Type 与 Target Type之间不能存在继承关系。
  3. 建议:对于有损转换(信息丢失或精度损失),使用显式转换。否则可使用隐式转换。

你可能感兴趣的:(.net中的类型转换)