转换是什么?
转换(Conversions)简单粗放地说是把一种数据类型转换为另一种数据类型的过程,细致一点说是把一种类型的值作为另一种类型的等同值来使用的过程(the process of taking a value of one type and using it as the equivalent of another type.)。
转换的意义是什么?
转换可以让数据在不同场景下变换为更加合适的类型发挥作用。假设在游戏中,我们最初得到的人物坐标值是double型的,但是我们现在只需要粗略的人物方位(比如在HUD的小地图中),对精度要求不高,那么就可以把坐标从double转换为int,这样更高效。
转换的种类
转换有C#预定义的转换和用户自定义的转换。C#预定义的转换有数值类型转换(Numeric)、引用类型转换 (Reference) 、装箱(Boxing)、拆箱(Unboxing)。
数值类型转换
从范围小的数值类型转换到范围大的数值类型是widening conversion,例如从int 转换到float(±1.5 x 10−45 to ±3.4 x 1038),这种转换能自动进行的,可以隐式转换(implicit conversion);反之,从范围大的数值类型转换到范围小的数值类型是narrowing conversion,这种转换不能自动进行,需要显示转换(explicit conversion)。
隐式转换不会丢失数据和精度,显式转换