我是靠谱客的博主 妩媚服饰,这篇文章主要介绍c#强制转换之as is用法解析,现在分享给大家,希望可以做个参考。

 
as 运算符类似于类型转换,所不同的是,当转换失败时,as运算符将产生空,而不是引发异常。在形式上,这种形式的表达式:
expression_r as type
as运算符只执行引用转换和装箱转换。
as运算符无法执行其他转换,如用户定义的转换,这类转换应使用case表达式来代替其执行。
关于is的其实也差不多,只是IS不会帮你进行任何的转换。所以需要自已进行显示转换。
is操作符进行转换,它自动检查时局是否和类型兼容,并返回结果。而且它不会抛出异常。如果对象引用为null,则is总返回false。
is例子:
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需要做一次对象类型检查,再加一次null的检查,而null检查开销比对象类型检查少。相对as的方法效率高些。
 

本文转自 tongling_zzu 51CTO博客,原文链接:http://blog.51cto.com/tongling/1151433

最后

以上就是妩媚服饰最近收集整理的关于c#强制转换之as is用法解析的全部内容,更多相关c#强制转换之as内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部