CLR via c#类型转换

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,都永远不会抛出异常。

原文地址:https://www.cnblogs.com/chenxiaoran/p/2081466.html