- CLR(公共语言运行时)最重要的特性之一就是类型安全
- 调用GetType()方法即可知道对象的确切类型
- CLR允许将对象转换为它的(实际)类型或者它的任何基类型
- C#不要求任何特殊语法即可将对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换
- C#将对象转换为它的某个派生类型时,C#要求开发人员只能进行显示转换,因为这种转换可能在运行时失败
使用C#的 is 和 as 操作符来转型
is:检查对象是否兼容于指定类型,返回Boolean值true或false。如果对象引用null,is操作符总是返回false,因为没有可检查其类型的对象。注意:is操作符永远不抛出异常。示例代码
Object o=new Object();
Boolean b1=(o is Object);//b1为true.
Boolean b2=(o is Employee);//b2为false.
as:检查对象是否兼容于指定类型,如果兼容,返回对同一对象的非空引用。如果不兼容,as返回null。注意:as操作符造成CLR只校验一次对象类型,永远不抛出异常。示例代码
Employee e=o as Employee;
if(e!=null)
{
//操作
}