CLR最重要的特性之一就是类型安全性。 在运行时,CLR总是知道一个对象是什么类型。调用GetType方法可以返回类型。 CLR允许将一个对象转换为它的实际类型,或者它的基类型。 在C#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例:
object o = new Emplee();
Emplee e = (Emplee)o;但是如果将一个对象转换成自己的派生类型是,会运行时报错:object o = new object();Emplee e = (Emplee)o;所以CLR是类型安全的。c#中is as的操作符用法在c#语言中,进行类型转换的另一个方式是使用is as操作符。is:检查对象是否兼容指定对象,返回bool类型。例:object o = new object();bool b1 = (o is object);//truebool b2 = (o is Emplee);//falseis一般的用法:
if(o is Emplee){ Emplee e = (Emplee)o;}as:目的是简化is的代码写法,同时提升性能,用法:Emplee e = o as Emplee;if(e != null){ }这段代码中,CLR核实o是否兼容于 Emplee类型,如果兼容就转Emplee类型,如果不兼容就返回null。