CLR最重要的特性之一就是类型安全。
CLR想要知道一个对象是什么类型,通过GetType方法可以得到,且该方法是非虚的。
类型转化的原则:
1.CLR 允许将一个对象转化为它的实际类型或者它的任何基类型。
2.将一个对象转化为它的某个派生类时,C#要求只能进行显示转化。
关于Is和as:
Object obj=new Object();
is的使用方法:
If(obj is Employee)
{
Employee em=(Employee)obj;
}
is的两次对象类型的检查:
1.is首先核查obj是否兼容于Employee类型。
2.在执行Employee em=(Employee)obj;时,CLR会再次核实obj是否引用了一个Employee.
as的使用方法
Employ em=obj as Employee;
if(em!=null)
{
............
}
在使用as的时候,CLR只会一次核实obj是否兼容于Employee类型;如果返回非null引用,则证明转化正确。
不管使用is还是as,都永远不会抛出异常。