A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢玲 中级黑马   /  2012-12-18 09:49  /  1942 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

bool result=p1 is Student;
Student s1= p1 as Student;
上面两句代码中is和as的作用相同吗??

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
不好意思,发重了.......
回复 使用道具 举报
is是判断他是否是某个类型,as是作为某个类型吧,你可以看看传智播客就业班的视频

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
object  is  type 判断某一类型的对象能否转换为另一个类型!如果可以返回true,不可以返回false
object  as  type把一个类型的对象强制转换为另一个类型的对象,如果可以返回这个类型的引用,不能转换则返回null值

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
is 是 引用的对象是否和student类型兼容 返回值是bool类型 相当于判断     as是如果能转的话,就返回一个非空的引用,不能就返回一个空引用   is不会报异常 as会报异常

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
is就是处于对类型的判断。返回true和false。如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。另外is操作符永远不会抛出异常。as是把一个类型的对象强制转换为另一个类型。
C# 提供 is 和 as 运算符的原因。您可以使用这两个运算符来测试强制转换是否会成功,而没有引发异常的风险。通常,as 运算符更高效一些,因为如果可以成功进行强制转换,它会实际返回强制转换值。而 is 运算符只返回一个布尔值。如果只想确定对象的类型,而无需对它进行实际强制转换,则可以使用 is 运算符。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马