C#类型转换(转载&摘抄&整理:供自己查阅学习)
2012-04-12 10:07
330 查看
在数据类型转换中,C#相对其它语言来说是比较严格的。
一、转换规则:(你必须知道的.net)
C#允许在继承链中向下转型,即任何类型都可以安全地隐式转换为其基类类型;
任何类型转换为其派生类型时,必须进行显示转换,转换的规则是:(类型名)对象名,转换失败会抛出异常;
CLR是类型安全的,任何对象都可以用GetType方法获得其精确类型;
基本类型可以使用Covert类实现类型转换;
除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型;
值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing)。
二、C#提供了一种is操作符进行换算。is模式规则如下:
检查对象类型的兼容性,并返回结果,true或者false;
不会抛出异常;
如果对象为null,则返回值永远为false。
View Code
四、几种类型转换的比较
1.is模式和as模式对比:is模式要进行两次数据类型的判断,而as只需要一次转换,性能高。但是is能作用于不可为空类型(如值类型),as不能作用于此类型。
2.as 和强制类型转换对比:as比强制转换能好,毕竟转换失败它不会抛出异常。但是强制转换能够处理“用户自定义转换”,而as就不行了。
一、转换规则:(你必须知道的.net)
C#允许在继承链中向下转型,即任何类型都可以安全地隐式转换为其基类类型;
任何类型转换为其派生类型时,必须进行显示转换,转换的规则是:(类型名)对象名,转换失败会抛出异常;
CLR是类型安全的,任何对象都可以用GetType方法获得其精确类型;
基本类型可以使用Covert类实现类型转换;
除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型;
值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing)。
二、C#提供了一种is操作符进行换算。is模式规则如下:
检查对象类型的兼容性,并返回结果,true或者false;
不会抛出异常;
如果对象为null,则返回值永远为false。
View Code
Class2 cls2 = cls1 as Class2; if (cls2!=null)//判断cls2是否为空,如转换失败cls2为空。 { System.Console.WriteLine("Ok"); } else { System.Console.WriteLine("Error!"); }
四、几种类型转换的比较
1.is模式和as模式对比:is模式要进行两次数据类型的判断,而as只需要一次转换,性能高。但是is能作用于不可为空类型(如值类型),as不能作用于此类型。
2.as 和强制类型转换对比:as比强制转换能好,毕竟转换失败它不会抛出异常。但是强制转换能够处理“用户自定义转换”,而as就不行了。
相关文章推荐
- MySQL语法大全_自己整理的学习笔记(摘抄)
- 在做mes系统时,利用D7 IdMessage&IdSMTP发送邮件,从盒子上学习了不少的东西,自己整理了一下,想share给新手,学习参考!
- EA&UML日拱一卒-0基础学习微信小程序(3)- 创建自己的小程序账号
- Mybatis 学习笔记 1(非原创 自己整理)
- Ajax学习 网址备忘录[自己整理]
- <转载学习>子类对父类构造方法调用小结
- 学习LoadImage函数的整理(转载)
- C#学习资料整理&网址整理
- vim 使用笔记(转载+自己整理)
- spring注解(转载,自己学习)
- JVM的相关知识整理和学习----转载(很好的JVM文章)
- UE4粒子系统基础属性整理供自己学习
- (转载)Deep Learning(深度学习)学习笔记整理系列之(六)
- 实现windows 窗体的自己画,网上摘抄的,学习了
- 自己整理的NBear学习资料,想学NBear的朋友可以下来看看!
- 转载:Expression 表达式树学习整理
- 去OpenCVManager,大部分为转载,仅当自己学习使用
- 转载:HttpClient 学习整理
- 转载:Ant学习笔记——自己构建Ant编译环境
- 整理的最完整的OFPT_STATS_REQUEST && REPLY消息-部分转载(含有1.0与1.3的对比)