当前位置:嗨网首页>书籍在线阅读

06-隐式转换

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.4.1 隐式转换

隐式转换就是系统默认的、不需要加以声明就可以进行的转换。在该过程中,编译器不需要对转换进行详细检查,就能安全地进行转换。例如,

01  short st=250;
02  int  i=st;           //将短整型隐式转换成整型

在C#引入var类型的变量之前,隐式转换仅存在于数值类型的数据之间。引入var类型之后,用var定义的变量可以实现隐式数据转换。

1.数值类型数据间的隐式转换

隐式数据类型转换适用于数值类型的数据之间,如整型数据(int)可以隐式转换为浮点型(float)和双精度型(double)数据,浮点型(float)可以隐式转换为双精度型(double)数据。隐式数据类型转换只有遵循如下表所示的规则才能实现。

| 类型 | 可转换为的类型 | | :----- | :----- | :----- | :----- | | 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 | | char | ushort、int、uint、long、ulong、float、double 或 decimal | | float | double | | ulong | float、double 或 decimal |

从int、uint、long或ulong到float,以及从long或ulong到double的转换可能导致精度损失,但不会影响数量级。其他的隐式转换不会丢失任何信息。

2.var类型数据隐式转换

用var定义的变量的数据类型是由赋值的数据决定的。如var Name="Johnson",此时变量Name就是字符串类型进行了隐式转换。如下所示。

01  var intNum=250;
02  int i=intNum;          //var型变量intNum隐式转换成整型
03  var Name="Johnson";
04  string strName=Name;   //var型变量Name隐式转换成string型