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

类型检查:type of,GetType,还是is?

类型检查:type of,GetType,还是is?

C#
千巷猫影 2019-06-18 10:05:38
类型检查:type of,GetType,还是is?我见过许多人使用以下代码:Type t = typeof(obj1);if (t == typeof(int))     // Some code here但我知道你也可以这么做if (obj1.GetType() == typeof(int))     // Some code here或者这个:if (obj1 is int)     // Some code here就我个人而言,我觉得最后一个是最干净的,但是有什么是我遗漏的吗?哪一个是最好的使用,还是个人的喜好?
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

1.

Type t = typeof(obj1);if (t == typeof(int))

这是非法的,因为类型只适用于类型,而不是变量。我假设obj 1是一个变量。因此,在这种情况下,type of是静态的,它在编译时而不是运行时工作。

2.

if (obj1.GetType() == typeof(int))

如果obj 1恰好是int类型,则这是正确的。如果obj 1派生自int,则if条件将为false。

3.

if (obj1 is int)

如果obj 1是int,或者派生自一个名为int的类,或者它实现了一个名为int的接口,则这是正确的。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 427 浏览

添加回答

举报

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