浅析is和as四个根本词在类型转变时的运用

is检核查象是还是不是合作与钦赐项目,重返Boolean值true或许false,值得注意的是,在利用is举办类型调换的时候是永久不会抛出10分的,举例:

    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奥迪Q3(公共语言运转时)会重复核准o是不是引用三个Employee。CL奥迪Q三的门类检查加强了安全性,但确实对质量变成一定的损耗,

所以C#提供了AS操作符,指标是简化这种代码的写法,同期加强品质。

  Employee e=o as Employee;

  if(e!=null){

    //使用e

爱博体育app,  }

  在这段代码中,CLTucson核查o是或不是相称与Employee类型,假设是,as重回对一样对象的非null引用。如若不相配与Employee类型,as再次回到null,那样CL君越就只校验贰回对象类型,那一个会比is的速度快大多。

as操作符的行事章程和劫持类型调换同样,只是它世代不抛出非常,假设指标不可能改动,则赶回null,所以采取as调换的品类前需决断指标是还是不是为null,不然会出现分外,如:

  Object o =new Object();

  Employee e= o as Employee;//此处类型调换失败,e=null;并不会抛出特别

  e.Tostring();// 使用e抛出NullReferenceException卓殊新闻

相关文章