is:检查对象是否兼容于指定类型,返回Boolean值true或者false。注意,is操作符永远不抛出异常。如果对象引用null,is操作符总是返回false。
as:类型转换,和显示转型对比,简化写法,提升性能。CLR的(显示转型)类型检查增强了安全性,但无疑会对性能造成一定影响。这是因为CLR首先必须判断变量引用的对象的实际类型,然后,CLR必须遍历继承层次结构,用每个基类型去核对指定的类型。由于这是一个相当常用的编程模式,所以C#专门提供了as操作符。as操作符也不会抛出异常,如果对象不能转型,结果就是null,所以对于as操作符,正确的做法是检查最终生成的引用是否null。