phmg.net
当前位置:首页 >> C#中的 is 和 As有什么不同? >>

C#中的 is 和 As有什么不同?

AS在转换的同时兼判断兼容性,如果无法进行转换,则 as 返回 null(没有产生新的对象)而不是引发异常。有了AS就不要再用try-catch来做类型转换的判断了。因此as转换成功要判断是否为null。 AS是引用类型类型的转换或者装箱转换,不能用与值类型...

简单来讲: is:判断该变量是否为某种类型,返回值为Boolean类型(即True or False) string str="这是个字符";int num =77520;bool isStr = str is string; //TrueisStr = num is string ; //Falseas:判断该变量是否为某种类型,并且“尝试”将...

is 判断是否为某类型 as 如果是某类型则直接转过去否则为null 如 person p = obj as preson; if (p!=null) do

Is:检查对象是否与给定的类型兼容。例如,下面的代码可以确定MyObject类型的一个实例,或者对象是否从MyObject派生的一个类型: if(obj is MyObject){} 如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常...

is是判断类型,,,as是转换类型比如判断a是不是b 。。。 if(a is b) 是的返回true,,否则返回false把a类型转换成b类型 a as b ...这样转换比较安全,,应该转换失败不会出现异常,而是返回NULL

as和强制转换之间最大的区别就在于如何处理用户自定义的转换。操作符 as和 is 都只检查被转换对象的运行时类型,并不执行其他的操作。如果被转换对象的运行时类型既不是所转换的目标类型,也不是其派生类型,那么转型将告失败。但是强制转型则会...

as 进行类型转换。 转型失败返回null,而不是抛出异常。 比如你举例的 B b= a as B;就相当于B b= (B)a;但是如果转型失败后一种就会抛出异常,而前一种b == null; 如果B是A 的基类,那么最后的b.getvalue()实际调用的是a的方法。 如果B不是A的基...

首先,BS复制的 as是用来类型转换的 比如:两个类:A和B B b = new B(); //不用as,进行强制转换,如果类型不匹配,会引发转换异常 A a = (A) b; //使用as,类型不匹配,不会引发异常,会返回一个null,此时 a = null A a = b as A;

IS 操作符:检查对象是否与给定类型兼容。 如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。 如果已知表达式将始终是 true 或始终是 false,则 is 关键字将导致编译...

网站首页 | 网站地图
All rights reserved Powered by www.phmg.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com