nintenyun

导航

is和as 操作符区别和用途

C#是强类型语言,所以会涉及到类型转换。is/as操作符,是C#中用于类型转换的,提供了对类型兼容性的判断,从而使得类型转换控制在安全的范畴,提供了灵活的类型转换控制。

典型代码

IS

View Code
1 object o = new object();
2  class A
3 {
4
5 }
6  if (o is A) //执行兼容检查
7  {
8 A a = (A) o; //强制转换,第二次兼容检查
9  }

AS

View Code
1 object o = new object();
2  class B
3 {
4
5 }
6 B b = o as B; // 进行了兼容性转换,并且转换了对象,如果不成功则返回NULL
7 if (b != null)
8 {
9
10 }

总结:不管是IS 或者 AS,都不会抛出异常,AS只进行一次兼容性检查,效率上比IS高。但是有时候只需要进行检查类型,而不需要转换,那IS更灵活

posted on 2011-02-11 16:43  nintenyun  阅读(179)  评论(0)    收藏  举报