浅析is和as多个重大词在类型转换时的运用,浅析is和as六个重点词在类型转换时的行使

by admin on 2018年12月29日

is检查对象是否配合与指定项目,重回Boolean值true或者false,值得注意的是,在行使is举行类型转换的时候是永久不会抛出特另外,例如:

is检查对象是否配合与指定项目,再次回到Boolean值true或者false,值得注意的是,在利用is举行类型转换的时候是恒久不会抛出相当的,例如:

    object o=new Object();

    object o=new Object();

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

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

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

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

  假设目的是null,则赶回结果为false,原因是绝非可检查其系列的目标,及null不是目的。

  假如目的是null,则赶回结果为false,原因是从未有过可检查其系列的靶子,及null不是目的。

  is操作符的正常化用法:

  is操作符的例行用法:

    if(o is Employee){

    if(o is Employee){

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

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

    }

    }

  在上头那段代码中实际对o对象开展了三次品种检查,is操作符首先核实o是否匹配与Employee类型,假如是的话,在if语句内部转换时,CLR(公共语言运行时)会再也核实o是否引用一个Employee。CLR的项目检查增强了安全性,但确确实实对性能造成一定的消耗,

  在下面那段代码中实际对o对象开展了一回品种检查,is操作符首先核实o是否配合与Employee类型,如假使的话,在if语句内部转换时,CLR(公共语言运行时)会再也核实o是否引用一个Employee。CLR的品种检查增强了安全性,但有目共睹对性能造成一定的耗费,

所以C#提供了AS操作符,目的是简化那种代码的写法,同时增强性能。

所以C#提供了AS操作符,目的是简化这种代码的写法,同时增强性能。

  Employee e=o as Employee;

  Employee e=o as Employee;

  if(e!=null){

  if(e!=null){

    //使用e

    //使用e

  }

  }

  在这段代码中,CLR核实o是否匹配与Employee类型,假设是,as重回对同一对象的非null引用。如若不配合与Employee类型,as重回null,这样CLR就只校验五回对象类型,这多少个会比is的快慢快很多。

  在那段代码中,CLR核实o是否匹配与Employee类型,假若是,as再次回到对同一对象的非null引用。假如不配合与Employee类型,as重回null,这样CLR就只校验五回对象类型,这一个会比is的进度快很多。

as操作符的做事形式和吓唬类型转换一样,只是它永远不抛出特别,虽然目的不可以转换,则赶回null,所以使用as转换的花色前需判断目的是否为null,否则会出现十分,如:

as操作符的办事章程和恐吓类型转换一样,只是它永远不抛出相当,假设目的不可能转换,则赶回null,所以使用as转换的品种前需判断目的是否为null,否则会出现非凡,如:

  Object o =new Object();

  Object o =new Object();

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

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

  e.Tostring();// 使用e抛出NullReferenceException相当消息

  e.Tostring();// 使用e抛出NullReferenceException非凡音讯

相关文章

发表评论

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

网站地图xml地图