浅析is和as四个首要词在类型转换时的行使

by admin on 2019年8月1日

is检核查象是否相称与钦点项目,重返Boolean值true或然false,值得注意的是,在选择is举办类型调换的时候是永久不会抛出特其余,举个例子:

    object o=new Object();

    Boolean a=(o is object);    //返回a=true

    Boolean b=(o is Employee)  //返回b=false

  假诺目的是null,则赶回结果为false,原因是未曾可检查其类其他对象,及null不是目标。

  is操作符的寻常用法:

亚洲必赢手机,    if(o is Employee){

      Employee e=(Employee)o;//类型转变

    }

  在上方这段代码中实际对o对象开始展览了四回品种检查,is操作符首先查证o是不是协作与Employee类型,若是是的话,在if语句内部转变时,CL传祺(公共语言运转时)会再也核准o是或不是援用三个Employee。CL途乐的档次检查加强了安全性,但确实对品质形成一定的消耗,

所以C#提供了AS操作符,指标是简化这种代码的写法,同不时间进步性能。

  Employee e=o as Employee;

  if(e!=null){

    //使用e

  }

  在这段代码中,CL普拉多核准o是或不是相配与Employee类型,假使是,as重返对同一对象的非null援用。假若不匹配与Employee类型,as再次来到null,那样CL奥迪Q5就只校验叁遍对象类型,那一个会比is的进程快相当多。

as操作符的做事方法和威逼类型调换同样,只是它世代不抛出非常,借使指标不能够改变,则赶回null,所以利用as转变的类型前需判定目的是不是为null,不然会出现非常,如:

  Object o =new Object();

  Employee e= o as Employee;//此处类型转换失败,e=null;并不会抛出非常

  e.Tostring();// 使用e抛出NullReferenceException相当音讯

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图