码迷,mamicode.com
首页 > Windows程序 > 详细

EffectiveC#3选择is或者as操作符而不是做强制类型转换

时间:2015-10-06 19:32:16      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

1.用as运算符进行类型转换。因为比起盲目的强制转换它更安全,而且在运行时效率更高。

   安全体现在:as操作符就算是转化一个null的引用时,也会安全的返回一个null而不会像强制转换抛出异常。

2.as和is运算符在运行时要检测转换目标的类型。如果一个指定对象不是要求转换的类型,或者它是从要求转换类型那里派生的,转换会失败。

3.as用于引用类型和可为null的类型,不可以用于值类型。

4.在进行值类型强制转换前可以先用is来安全的判断一下数据类型。

   注:如果o是其它可转化为整形的类型(译注:但o并不是真正的整形),例如double,那么is运算操作会返回false

5.如下代码冗余。使用as来转换数据,那么用is来做检测是不必要的。只用检测返回类型是否为null就行了

   object o = Factory.GetObject( );

   MyType t = null;

   if ( o is MyType )  

         t = o as MyType;

 

EffectiveC#3选择is或者as操作符而不是做强制类型转换

标签:

原文地址:http://www.cnblogs.com/tiantianle/p/4857372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!