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

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;

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