看这段代码:







Employee 是我们定义的一个类。
从这段代码中,CLR实际会检查两次对象的类型。is操作符首先核实o是否兼容于Employee类型。如果答案肯定,那么在if语句内部执行转型时,CLR再次核实o是否引用一个Employee。CLR的类型检查增强了安全性但无疑也会对性能造成了影响。由于这是一个相当常用的编程模式,所以专门提供了as操作符,既简化了写法又提高了性能。





在这段代码中,CLR核实o是否兼容于Employee类型;如果答案肯定,as会返回同一个对象的一个非null的引用。否则返回一个null。