c#强制转换之as is用法解析

发布时间:2020-06-27 13:07:31 作者:tongling_zzu
来源:网络 阅读:397
 
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的方法效率高些。
 
推荐阅读:
  1. XML解析之DOM4J解析的示例分析
  2. C#之@用法的实例解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

表达式 转换as is

上一篇:磁盘与文件系统管理

下一篇:tkinter_Entry和text

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》