as的使用
as的使用:可用于将对象转换为指定类型,可直接进行类型转换,如果转换成功会返回转换后的对象,如果转换不成功则不会抛出异常,而是返回null。
Object obj=new Object(); //创建一个object对象.
ClassA a =obj as ClassA;//将obj转型为ClassA,此时转型操作会失败,不会抛出异常,但a会被设为null.
a.ToString();//访问a会抛出一个NullReferenceException异常。
is的使用
is的使用:is关键字是用于检查对象是否与给定类型兼容,如果兼容就返回true,如果不兼容就返回false。
Classcc
{....
}
Object obj=new Object();
Boolean b1=(obj is Object); //b1为true.
Boolean b2=(obj is Classcc) ; b2为false
通常is会使用在if语句当中,用以判断检查一个对象是否兼容于其他指定的类型
if (obj is object){}
as与is的区别和使用
整体来说as模式的效率要比is模式的高,因为借助is进行类型转换,需要执行两次类型兼容检查。而as只需要做一次类型兼容,一次null检查,null检查要比类型兼容检查快。