由最近值类型和引用类型探讨想到的一些问题
时间:2010-12-13 来源:xiangyun
1.会因为没有记住使用的类型而出错,造成类型不兼容;
2.值类型和引用类型的相互转换即装箱拆箱使系统性能下降。
Employee e = o as Employee;if(e!=null){//在if语句中使用e}在这段代码中,CLR首先核实o是否兼容于Employee;如果是,as 将返回对同一个对象的非null引用。如果不兼容,as则会返回Null值。由于as操作符造成CLR只校验一次对象的类型。if语句只检查e是否为null.这个检查速度比校验类型快的多。as操作符的工作方式与强制类型转换一样,只是它永远不会抛出异常。
但是as 不能用于值类型而is却可以。例如如下代码将无法编译 object o = Factory.GetValue( );int i = o as int; 关于as 和 is 在《你必须知道的.NET] 第一回:恩怨情仇:is和as 》中的介绍也很不错大家可以参考。
相关阅读 更多 +