隐式类型转换 在c#引入var类型的变量之前,隐式转换仅存在于数值类型的数据之间,引入var类型之后,var定义的变量可以实现隐式数据转换。 数值类型数据 隐式数据类型转换适用于数值类型的数据之间,int、float、double类型都属于数值类型,隐式数据类型转换应遵循以下规则才能实现: 对于数值类型,任何数据类型A,只要其取值范围完全包含在类型B的取值范围之内,就可以实现隐式类型转换。即整型数据int类型可以隐式转换为浮点型 float 和双精度型 double 数据,浮点型 float 数据可以隐式转换为双精度型 double 数据,下面举例隐式数据转换 int num1=3; float num2=num1; double num3=num1+num2; 整型数据 num1可以直接赋值给浮点型数据 num2,浮点型数据可以和整型数据相加转换为双精度型数据,说明存在隐式数据类型转换。 var类型数据 这是由var数据类型定义的特点决定的,var定义的变量数据类型是有赋值的数据决定的,如var strname="张小二",赋值为字符串类型,此时strname变量就是字符串类型的数据变量,那么和string类型的数据即可以实现隐式转换,其他的数据类型也是如此,下面说明var的隐式转换 var strname="张小二"; string name=strname; var intger =12; int num=intger; 如果改为int name=strname 就会出现编译错误,提示无法将“string”隐式转换为“int” 注意 var数据类型隐式转换时必须保证转换的数据类型和赋值的数据类型相匹配。 显示类型转换 与隐式类型转换相反的是显示类型转换,通过显示数据转换,可以把取值范围大的数据转换为取值范围小的数据。下面是显示数据转换的方法: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace zhuanhuan { class ConvertTest { static void Main(string[] args) { int num=3; float num2=num1; double num3=45.24; int num4; num4=num1*(int)num3; Console.WriteLine("整型数据转换为浮点型数据{0}",num2); Console.WriteLine("总价格为{0}",num4); Console.ReadKey(); } } } 其中num4=num1*(int)num3; 这就是显示转换,如果这样写num4=num1*num3;编译器会提示是否缺少强制转换,修改之后程序结过 整型数据转换为浮点型数据3 总价格为135
此内容摘至:http://bbs.51cto.com/thread-748239-1.html