知识点总结(三)
1. is与as 的使用解析
>>> is的规则如下:
- 检查对象类型的兼容性,并返回结果,true或者false;
- 不会抛出异常;
- 如果对象为null,则返回值永远为false。
object o=new object();
class A
{
if(o is A) ----第一次转换
{
A a=(A)0; -----第二次转换
}
}
>>>as的规则如下:
- 检查对象类型的兼容性,并返回结果,如果不兼容就返回null;
- 不会抛出异常;
- 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。
object o=new object();
class B{}
B b=o as B;---执行一次兼容性检查
if(B!=null)
{}
总结:通知情况下不建议使用 A a =(A)o,这种显示的强制转换,使用 A a =o as A,如果转换不成功将会抛出异常。