3.C#知识点:is和as
2018-06-17 19:03:11来源:未知 阅读 ()
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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:捕获程序未抛出的异常
下一篇:2.C#知识点:I/O
- .NET工程师必须掌握的知识点 2018-06-17
- 1.一步一步学c#(一):.NET体系结构(知识点) 2018-06-17
- 3.一步一步学c#(三):对象和类型 2018-06-17
- 2.1确定一个char包含何种字符 2018-06-17
- JS代码大全 (都是网上看到 自己整理的) 2018-06-17
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