as 和 is 有什么区别
发布网友
发布时间:2022-04-27 13:47
我来回答
共2个回答
懂视网
时间:2022-04-27 18:08
1、as
用于在兼容的引用类型之间执行转换,as 运算符类似于强制转换操作;但是,如果转换不可行,as 会返回 null 而不是引发异常。更严格地说,这种形式的表达式:expression as type,等效于expression is type ? (type)expression : (type)null,只是 expression 只被计算一次。注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行 as操作符不会做过的转换操作,当需要转化对象的类型属于转换目标类型或者转换目标类型的派生类型时,那么此转换操作才能成功。
效率:
当用as操作符进行类型转换的时候,首先判断当前对象的类型, 当类型满足要求后才进行转换,而传统的类型转换方式,是用当前对象直接去转换, 而且为了保护转换成功,要加上try-catch. 而且并不产生新的对象【当不成功的时候,会返回null】。 相对来说,as效率高点,用as进行类型转换是安全的。 实例: e.Item.DataItem as DataRowView 同等 (DataRowView)e.Item.DataItem
2、is
检查对象是否与给定类型兼容,例如:if(obj is string){}。如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。如果已知表达式将始终是 true 或始终是 false,则 is 关键字将导致编译时警告,但是,通常在运行时才计算类型兼容性。不能重载 is 运算符。请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。
热心网友
时间:2022-04-27 15:16
如果你问的是ActionScript的函数的话(英语我不大擅长),is判断是否是这个类型或它的子类。as也是判断的,不同的是他会烦糊一个转换后的对象。as用于排错中,当出现“隐式强制指令是非相关目标”时,用as转换成该对象。
is、as经常一起使用,先用is判断类型,再用as转换对象,可完美解决上面说到的“隐式强制指令是非相关目标”。
as 和 is 有什么区别
如果你问的是ActionScript的函数的话(英语我不大擅长),is判断是否是这个类型或它的子类。as也是判断的,不同的是他会烦糊一个转换后的对象。as用于排错中,当出现“隐式强制指令是非相关目标”时,用as转换成该对象。is、as经常一起使用,先用is判断类型,再用as转换对象,可完美解决上面说到的“...
ISTA3E测试
ISTA3E程序是对相同产品的集合包装的综合模拟性能测试,集合包装件被定义为将一个产品、多个产品或包装件放置在滑板或托盘上,固定在一起或是作为一个单元运输。例如:一台机器由带瓦楞底托的托盘上、瓦楞侧围、顶盖包装,用缠绕膜缠绕在托盘上...
is 、as 关键字分别有什么含义?
is 检查对象是否与给定类型兼容。if (obj is string) obj="我是好人";as 运算符用于在兼容的引用类型之间执行转换。类似于强制转换操作。但是,如果无法进行转换,则 as 返回 null 而不引发异常。string s = someObject as string;if (s != null){ // someObject is a string.} ...
在C#中 is 和 as 关键字有什么作用?如何正确的使用这两个关键字呢?_百...
is是判断类型,,,as是转换类型比如判断a是不是b 。。。 if(a is b) 是的返回true,,否则返回false把a类型转换成b类型 a as b ...这样转换比较安全,,应该转换失败不会出现异常,而是返回NULL
c#中的 is 和 as有什么不同?
c# is和as的区别 关于类型的判断和转换有is和as这2个操作符。具体区别和用法如下 is就是处于对类型的判断。返回true和false。如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。另外is操作符永远不会抛出异常。代码如下:System.Boolean b1 = (o is System.Object);/...
oracle 存储过程 as 和is 区别
第一个问题:is和as是可以互用的,用哪个都没关系的 第二个问题:在外面 第三个问题:过程中没有declare关键字,declare用在语句块中 第四个问题:估计你看到的是做游标定义的东东,抑或者直接就一句sql。
C#中is和as操作符的区别
var ranObj="这是一个字符";string strObj=ranObj as string;//int intObj=ranObj as int;//直接报异常 as 不适用于值类型,因为值类型不能为null//List<string> arrObj = ranObj as List<string>; //直接报异常 不允许进行拆装箱之后进行转换 注意var关键词object objObj = "这是...
创建存储过程is和as有什么区别
is 用来判断类型 如: if(val is String){...} as 作为/当做 的意思吧,我叙述不清,给你个例子吧:function xx(e:Event):void{ var ss:Loader = e.target as Loader; // 让SS共享调用XX事件的对象的信息;..}
缩写“as-is”是什么意思
“as-is”是一个英文短语,通常用于描述某事物处于其原始状态或现有状况,意为“现状”或“原样”。这个短语在多种语境下都有应用,尤其是在商业、法律和技术领域。二、商业语境中的应用 在商业活动中,“as-is”常用于描述商品的状况。例如,在二手商品交易中,卖家可能会使用“as-is”来表明商品以...
C#中is、as和base 关键字的各有什么作用如题 谢谢了
is操作符用于检查对象释放与给定的类型相同 例如判断一个object是否是字符串型 if(obj is string){} as用于两个对象之间的类型转换 类似于强制转换 但当转换失败时运算符将产生空 而不是引发异常 例如for(int i=0;i<studengs.count;i++) {Student stu=Student[i] as Student; Console.WriteLine...
oracle存储过程中,is和as有什么区别
在存储过程(procedure)和函数(function)中没有区别,在视图(view)中只能用as不能用is,在游标(cursor)中只能用is不能用as。