暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

.NET Framework学习(六)

站的稳的瘦子 2018-07-26
281

2.类型转换

CLR最重要的特性之一就是类型安全。在运行时,CLR总是会知道对象的类型是什么,调用GetType方法就可以指定对象的确切类型。由于这个方法不是虚方法,所以一个类型不可能伪装成另一个类型。

类型的装换,有点像我们才开始学习Java基础的时候的箱上转型和向下转型

做个简单的例子:

Internal class Employee{

}

 

Public sealed class program{

         Public  static void main(){

         //定义一个Employee对象,由于object是基类型,所以这里不需要转型

                   Object  o = new Employee();

                   //由于employee派生自object,这样的转型是强制转型

                   Employee  em = (Employee)o;

}

}

 

 

C#中用isas来进行转型

Is操作符永远不会抛出异常

Object o = new Object();

Bool b1=(o is Object);//返回TRUE

Bool b2=(o is Employee)//返回FALSE

Is操作符一般用来转型之前的判断:

 

如下面的操作:

If(o is Employee){

    Employee e=(Employee)o;

}

在上面的代码中,CLR实际检查了两次对象类型,is操作符首先核实o是否兼容与Employee类型。如果兼容,那么就执行转型,在if语句的内部,CLR再次核实o是否引用了一个EmployeeCLR的类型检查增强了安全性问题。

As操作符也是永远不抛出异常

Employee e=o as Employee;

 

在上面的代码中,CLR检查o是否兼容于Employee,如果兼容,as就会返回一个Employee的对象引用,如果不是,则返回一个nullAs操作符只校验一次对象的类型,这是和is操作符不一样的地方。

 

 


文章转载自站的稳的瘦子,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论