加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用’is’,其中类型是在运行时定义的

发布时间:2020-12-15 19:59:13 所属栏目:百科 来源:网络整理
导读:谁能帮我?我无法弄清楚我做错了什么,但似乎会有一个简单的解决方案: 通常你可以使用是这样的: if (theObject is MyClass) ... 但是如果你想指定它在运行时检查的类型,那么就不会编译 Type theType = ...if (theObject is theType) ... 我试过这样做: if
谁能帮我?我无法弄清楚我做错了什么,但似乎会有一个简单的解决方案:

通常你可以使用是这样的:

if (theObject is MyClass) ...

但是如果你想指定它在运行时检查的类型,那么就不会编译

Type theType = ...
if (theObject is theType) ...

我试过这样做:

if (theObject.GetType() == theType) ...

但是只有当Type是那种确切的类型并且没有像is语句那样考虑继承时才有效

我确定存在一个解决方案(可能使用泛型)但我现在想不到一个解决方案(它突然记得你点击’发布’时如何做的事情)

解决方法

听起来你想要 IsAssignableFrom(),就像在

if (theType.IsAssignableFrom(theObject.GetType())) ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读