C#中数据类型转换-隐式转换
隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。
隐式数值转换:
从 sbyte 到 short、int、long、float、double 或 decimal。
从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。
从 short 到 int、long、float、double 或 decimal。
从 ushort 到 int、uint、long、ulong、float、double 或 decimal。
从 int 到 long、float、double 或 decimal。
从 uint 到 long、ulong、float、double 或 decimal。
从 long 到 float、double 或 decimal。
从 ulong 到 float、double 或 decimal。
从 char 到 ushort、int、uint、long、ulong、float、double 或 decimal。
从 float 到 double。
不存在向 char 类型的隐式转换,因此其它整型的值不会自动转换为 char 类型。
浮点型不能隐式地转化为decimal型 。
隐式数据类型转换适用于数值类型的数据之间。int,float,double类型都属于数值类型。隐式数据类型转换应遵循以下规则才能实现。
对于数值类型,任何数据类型A,只要其取值范围完全包含在类型B的取值范围之内,就可以实现隐式类型转换。即整型数据(int)类型可以隐式转换浮点型(float)和双精度型(double)数据。浮点型(float)数据可以隐式转换为双精度(double)数据。
下面这段代码说明隐式转换:
int num1=3;
float num2=num1;
double num3=num1+num2;
隐式枚举转换:
隐式枚举转换允许将十进制整数 0 转换为任何枚举类型。
隐式引用转换:
派生类向基类转换
隐式引用转换是指一类引用类型之间的转换,这种转换总是可以成功,因此不需要在运行时进行任何检查。
装箱转换:
装箱转换允许将值类型隐式转换为引用类型。