类型安全是.net设计之初最重要的问题。在.net中,一切类型都必须继承于system.object,可以通过gettpye的方法获得准确类型。
is和as操作符,便是c#中对类型转换的支持。
is的规则如下:
(1)检查类型的兼容性,并返回结果,返回true或者false
(2)不会抛出异常
(3)如果对象为null,则永远返回false
常见用法如下
object o = new object();
class A
{
}
if (o is A) //执行第一次类型兼容检查
{
A a = (A) o; //执行第二次类型兼容检查
}
as的规则如下:
(1)检查兼容性,并返回类型转换结果,如果不兼容则返回null。
(2)不会抛出异常。
常见用法如下
object o = new object();
class B
{
}
B b = o as B; //执行一次类型兼容检查
if (b != null)
{
MessageBox.Show("b is B's instance.");
}