ps做网站的常用素材,如何申请我的网站,html音乐播放器代码,企业做网站需要的资料c# 中 is和as 操作符是用来进行强制类型转换的 is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常 objecto newobject(); if(o isLabel) { Label lb (Label)o; Response.Write(类型转换成功); } else{ … c# 中 is和as 操作符是用来进行强制类型转换的 is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常 object o new object(); if (o is Label) { Label lb (Label)o; Response.Write(类型转换成功); } else { Response.Write(类型转换失败); } 在上面的代码,CLR实际上会检查两次对象的类型,is操作符先核实一次,如果o兼容于Lable,那么在(Label)o时会再次核实一次,效率比较低,不建议使用 as:与强制类型转换是一样的,但是永远不会抛出异常,即如果转换不成功,会返回null object o new object(); Label lb o as Label; if (lb null) { Response.Write(类型转换失败); } else { Response.Write(类型转换成功); } 在上面的代码中,CLR只会进行一次类型核实,效率要高于 is 在学习C#时看到这样一种表达方式 BAP_USER user session[User] as BAP_USER; if(user null) return mapping.FindForward(error); 有些不明白上网查了些资料对is和as操作符有了些了解把资料放在这里供学习和参考 在C#中所有的东西都是对象。因此任何常数也是一个整型对象。这里用到了as as 是C#语言里面的一个关键字。as 运算符类似于类型转换所不同的是当转换失败时as 运算符将产生空而不是引发异常。在形式上这种形式的表达式 expression as type as 运算符只执行引用转换和装箱转换。 as 运算符无法执行其他转换如用户定义的转换这类转换应使用case表达式来代替其执行 关于is的其实也差不多只是IS不会帮你进行任何的转换。所以需要自已进行显示转换 is操作符进行转换它自动检查时局是否和类型兼容并返回结果。而且它不会抛出异常。如果对象引用为null则is总返回false。 if (cls1 is Class2) { Class2 cls2 (Class2)cls1; } else { System.Console.WriteLine(Error 2!); } as操作符进行转换 Class2 cls2 cls1 as Class2; if (cls2!null) System.Console.WriteLine(Ok); else System.Console.WriteLine(Error!); 对比is和as操作符转换的两种方式is需要做两次对象的类型检查而as需要做一次对象类型检查再加一次null的检查而null检查开销比对象类型检查少。相对as的方法效率高些。 转载于:https://www.cnblogs.com/jhxk/articles/1739177.html