博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《你必须知道的.NET》--is和as(Ⅰ)
阅读量:7085 次
发布时间:2019-06-28

本文共 664 字,大约阅读时间需要 2 分钟。

本节主要介绍类型转换方面知识!

1、任何类型都可以安全地转换为其基类类型,可以由隐式转换来完成;

2、任何类型转换为其派生类型时,必须进行显式转换;

3、值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing);

 Ⅰ、IS模式

  a.检查对象类型的兼容性,并返回结果:true或者false;   b.不会抛出异常;   c.如果对象为null,则返回值永远为false。  ex:
string a = "hello world!";     if (a is XX)     {       XX b = (XX)a;    }

 

 Ⅱ、AS模式

  a.检查对象类型的兼容性,并返回结果,如果不兼容就返回null;   b.不会抛出异常;   c.如果结果判断为空,则强制执行类型转换将抛出NullReferenceExcep异常;   d.as必须和引用类型一起使用。  ex: 
  object o = new object();    XX b = (XX)o;    // 如果类型转换不成功,会抛出异常
  对于上面的as操作,等效于下面的is操作:     XX b = o is XX ? (XX)o: null ;   实现的语法更加简明,且不会引发异常,在类型转换时值得推荐。

综上所述,as模式较is模式执行效率上更胜一筹,但是通常来说,is用于进行类型判断,as用于类型转型。

 

转载于:https://www.cnblogs.com/xishi7/p/4255923.html

你可能感兴趣的文章
Linux中断(interrupt)子系统之一:中断系统基本原理【转】
查看>>
Sublime Text2格式化HMTL/CSS/JS插件HTML-CSS-JS Prettify
查看>>
AgileEAS.NET平台开发实例-药店系统-BLL层分析
查看>>
Duanxx的Altium Designer学习:PCB试想一下,在目前的水平
查看>>
JMS(Java消息服务)入门教程
查看>>
Trie树的C++实现
查看>>
Android的init过程(二):初始化语言(init.rc)解析【转】
查看>>
HDOJ2017 ( 字符串统计 )
查看>>
xcode 5.0中,新的开发者证书加载方式
查看>>
如何在Windows 2003 中使用Windows Live Writer? - 2010年5月21日学习笔记(1)
查看>>
善用VS中的Code Snippet来提高开发效率
查看>>
EXTJS学习系列提高篇:第六篇(转载)作者殷良胜,更换皮肤
查看>>
Metro style App ContextMenu Summary
查看>>
新做了一个项目,一个人做的,关于数据传输的项目(架构说明)
查看>>
T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
查看>>
[转载]3GP文件格式研究
查看>>
GCD处理多线程同步操作 韩俊强的博客
查看>>
Java中JTree的简单案例
查看>>
Docker 三剑客之 Docker Swarm
查看>>
8.2. 数据库部署
查看>>