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 转换为任何枚举类型。

隐式引用转换:

派生类向基类转换

隐式引用转换是指一类引用类型之间的转换,这种转换总是可以成功,因此不需要在运行时进行任何检查。

装箱转换:

装箱转换允许将值类型隐式转换为引用类型。