is检核查象是还是不是匹配与钦赐项目betvictor1946

betvictor1946,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语句内部调换时,CLRAV4(公共语言运维时)会另行核算o是还是不是援用三个Employee。CLMurano的类别检查加强了安全性,但可信赖对性能产生一定的消耗,

所以C#提供了AS操作符,目标是简化这种代码的写法,同有时间巩固质量。

  Employee e=o as Employee;

  if(e!=null){

    //使用e

  }

  在这段代码中,CL宝马X3查证o是不是合营与Employee类型,假设是,as重临对同一对象的非null援引。假诺不合营与Employee类型,as再次回到null,那样CLPRADO就只校验一回对象类型,这几个会比is的进程快非常多。

as操作符的做事方法和威逼类型调换同样,只是它长久不抛出非常,假使指标无法转换,则赶回null,所以采用as转变的门类前需判别指标是否为null,不然会出现万分,如:

  Object o =new Object();

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

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

相关文章