为了账号安全,请及时绑定邮箱和手机立即绑定

c# 语法疑问...

c# 语法疑问...

呼如林 2018-12-07 01:48:55
object objTest = 11;     if ( objTest is int )     {         int nValue = (int )objTest;     }   使用is关键字。。不是关键字is前面的必须派生或是本类型才可以用嘛??难道object派生自int??
查看完整描述

5 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

你的代码本身没有问题,但你说反了,所有类型都是派生自object,换 言之,object是所有类型的基类。
查看完整回答
反对 回复 2018-12-09
?
手掌心

TA贡献1942条经验 获得超3个赞

is关键字只是将前面的操作符“尝试”强制转换为后面的操作符(注意是尝试)。成功返回true,失败就直接抛出异常 可以使用as关键词,此关键词直接将前面的操作符强制转换为后面的操作符(非尝试),失败返回null,不会抛出异常。
查看完整回答
反对 回复 2018-12-09
?
哔哔one

TA贡献1854条经验 获得超8个赞

Object是所有的基类,你那样定义,只是隐式转换成int类型;也可以这么写:           object objTest = 11;           int nValue = (int)objTest;           Console.WriteLine(nValue);           Console.ReadLine(); 结果是:11; 经过反汇编编译后: IL--0003处自动转换int32型. 知道为什么了吧!
查看完整回答
反对 回复 2018-12-09
?
慕后森

TA贡献1802条经验 获得超5个赞

二楼的回答我看懂了
查看完整回答
反对 回复 2018-12-09
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

这里我说说is的使用 A is B(A是对象名 B是类名) 代表的意思是判断对象A是否为B类的实例,对A到底是不是没有要求,只用于判断,然后返回ture或false,也就是说你可以写任意一个类对象if(anyObject is int) 判断它是否为int.
查看完整回答
反对 回复 2018-12-09
  • 5 回答
  • 0 关注
  • 413 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信