c#类型转换总结
2017-03-14 19:58
239 查看
一,数据类型的转换1.(int)变量名[强制类型转换] 该转换方式主要用于数字类型之间的转换,从int类型向long,float,double,decimal 类型转换可以使用隐式转换,但从long型到int 就需要使用显示转换,即使用该类型的转换方式否则产生编译错误。 该方式对于浮点数会无条件的舍去,会失去精确度 对于char类型的到int类型的转换,传回的值是ASCII码
示例:double doubleValue = 3.14159265; int intValue = (int)doubleValue;2.int.Parse(string 变量名) 该方式是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。 使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内3.int.TryParse(string s, out int result) 该方式也是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。 4. Convert.ToInt32 该方式不仅可以将字符串类型转换为int,还可以将其他的类型转换为int。变量若为object或string类型,当其值为Nul时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,转换成int时,程序仍会出错。 该方式对于float类型做四舍五入。 该方式同强制类型转换一样在处理char类型的时候,返回的都是ASCII码
示例: int intValue1 = "123".ConvertTo<int>(); int? intValue2 = "123".ConvertTo<int?>(); DateTime dateTimeValue1 = "1981-08-24".ConvertTo<DateTime>(); DateTime? dateTimeValue2 = "1981-08-24".ConvertTo<DateTime?>();
二,引用类型的转换
当子类转为父类时会发生隐式转换。//隐式转换发生在占内存少的数据类型向占内存多的类型的转换,还有子类朝向父类的转换
谈到引用类型转换不得不谈谈 is和as关于类型的判断和转换有is和as这2个操作符。具体区别和用法如下is就是处于对类型的判断。返回true和false。如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。另外is操作符永远不会抛出异常。代码如下:System.Boolean b1 = (o is System.Object);//b1 为trueSystem.Boolean b2 = (o is Employee);//b2为false如果对象引用为null,那么is操作符总是返回为false,因为没有对象可以检查其类型,就像下面代码一样if(o is Employee) { Employee e = (Employee) o; //在if语句中使用e}在上面代码中,其实clr对对象类型检查了两次:is操作首先检查o所引用的对象是否和employee类型兼容。如果兼容,那么在if语句内clr在执行转换时又会检查o是否为一个Employee引用。这种编程范式十分常见,c#便提供了一种新的类型检查,转换方式。即as操作符,他可以在简化代码的同时,提高性能。代码如下:Employee e = o as Employee;if(e != null){ //在if语句中使用e}这种as操作即便等同于上面代码,同时只进行了1次的类型检查,所以提高了性能。如果类型相同就返回一个非空的引用,否则就返回一个空引用。
相关文章推荐
- C#类型转换总结
- 读<<CLR via C#>>总结(2) 对象创建的原理和两种类型转换方法
- C#中的数据类型转换总结
- C# 课堂总结2-数据类型及转换方式
- C#中的类型转换大总结
- C#调用dll时的类型转换总结
- C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换
- C#中的类型转换大总结
- C#调用dll时的类型转换总结
- C#中的类型转换大总结
- C#调用dll时的类型转换总结
- C#调用dll(C++(Win32))时的类型转换总结(转)
- C#引用类型转换的常见方式总结
- C#调用dll时的类型转换总结
- C#调用dll(C++(Win32))时的类型转换总结
- C#调用dll时的类型转换总结
- C#调用dll时的类型转换总结
- C#调用dll时的类型转换总结
- C#中的类型转换大总结
- C#类型转换总结