is的规则如下:
• 检查对象类型的兼容性,并返回结果,true或者false;
• 不会抛出异常;
• 如果对象为null,则返回值永远为false。
object o = new object();
class A
{
}
if (o is A) //执行第一次类型兼容检查
{
A a = (A) o; //执行第二次类型兼容检查
}
as的规则如下:
• 检查对象类型的兼容性,并返回结果,如果不兼容就返回null;
• 不会抛出异常;
• 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。
object o = new object();
class B
{
}
B b = o as B; //执行一次类型兼容检查
if (b != null)
{
MessageBox.Show("b is B's instance.");
}