3.C#知识点:is和as
2018-06-24 00:04:34来源:未知 阅读 ()
IS和AS 都是用于类型转换的操作。
但是这两个有什么区别呢?
简单的来说 is 判断成立则返回True,反之返回false。as 成立则返回要转换的对象,不成立则返回Null。
下面掏一手代码来说明一下。
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IsAndAsTest { class Program { static void Main(string[] args) { object child = new Child(); bool b1 = (child is Father); bool b2 = (child is Mother); Console.WriteLine(b1);//返回true Console.WriteLine(b2);//返回false Console.ReadKey(); } } public class Father { } public class Child:Father { } public class Mother { } }
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IsAndAsTest { class Program { static void Main(string[] args) { object child = new Child(); //bool b1 = (child is Father); //bool b2 = (child is Mother); //Console.WriteLine(b1);//返回true //Console.WriteLine(b2);//返回false //Console.ReadKey(); Father f1 = child as Father;//可以得到转换成功,得到对象 Mother m1 = child as Mother;//转换失败,m1的值为null } } public class Father { } public class Child:Father { } public class Mother { } }
有一点我要强调一下就是子类可以转换父类,但是父类不能转换为子类,这就比如现在这个社会。你父母的东西是你的,但是你的东西还是你的一样。
Father F2 = new Father(); Child C1 = (Child)F2;
第二句代码转换的时候就会失败了。因为父类不能强转换为子类。Father不能转换为Child,但是我们如果用As进行转换的话为得到一个null的c1对象。
总结
由他们返回值就可以简单的知道他们的用法。
is 主要用于类型推断,而不需要实际的转换。
as 主要用于真正的类型转换。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如此沙雕的代码注释,原来程序员都是段子手 2020-06-08
- 初级Web前端工程师掌握这些知识点,月薪8000妥妥滴 2020-05-18
- 小白转前端,学习哪些知识点才能不走弯路? 2020-04-20
- 自学前端需要掌握哪些知识点? 2020-04-06
- HttpServlet在第一个Servlet程序中的知识点 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash