我是靠谱客的博主 妩媚服饰,最近开发中收集的这篇文章主要介绍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 is用法解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部