C#

显示类型转换

显示转换:需要人为强制干预的数据转换。

转换方法:

  • (类型名)表达式
  • Convert.To类型名(表达式)
  • 类型名.Parse(表达式) 此方法针对数值类型的转换

显示转换要被的条件是:

  1. 被转换类型的值范围必须包含目标类型的值范围;如果超出目标类型的最大或最小值,则编译器会抛出异常,转换不成功。

  2. 被转换类型的值同样必须与目标类型兼容

double类型的值范围大于float类型的值范围,所以float转double可以隐式转换,double转float却需要显示转换。

隐式类型转换

隐式转化:数据的类型的转换由编译器自动进行,不需要人工干预的数据转换。

隐式转换要具备的条件是:

  1. 被转换类型的值范围必须包含目标类型的值范围
  2. 被转换的值的类型必须与目标类型兼容

在引用类型中,比如类与类之间的转换,同样都需要遵循隐式转换与显示转换的原理和规则。

父类与子类的转换

打个比方,父类是人类,子类是个男子

索取一个人类时,你给了一个男子

这是对的,合理

反过来说,索取一个男子时,你给了一个人类

就不一定正确,容易出错

也可以说是人类的范围比男子的范围大得多,你给的是男子范围那就一定是人类;如果给的是人类,却不一定是男子,也有可能是女子。

装箱、拆箱

装箱:值类型 -> 引用类型

拆箱:引用类型 -> 值类型

原文地址:https://www.cnblogs.com/mumuyinxin/p/10633135.html