【问题标题】:How to get one class using interface?如何使用接口获得一个类?
【发布时间】:2015-07-20 22:46:48
【问题描述】:

我搜索了谷歌,我只能找到如何使用接口获取所有类。我想知道一个对象是否继承了一个接口?

为了进一步解释,我有几个使用IEquipable 的类。我正在尝试检查 IEquipable 是否为 Firearm

我试过了

(Firearm)currentItem.damage

但这不起作用。 currentItem 是一个 IEquipable。

【问题讨论】:

  • 以问题中的当前信息,任何人都无法帮助您。 IEquipable 是什么? currentItem.damage 返回什么类型?您是要存储currentItem.damage 的值还是想知道类型?
  • 好吧,你在施放之前访问了damage属性......所以你需要另一个括号 ((Firearm)currentItem).damage.. 如果你想检查类,你可以使用 is 或 cast它与 as 并检查结果是否不为空...

标签: c# class interface


【解决方案1】:
if (currentItem is Firearm)
{
    var firearm = (Firearm)currentItem;
    var damage = firearm.damage;
}

var firearm = currentItem as Firearm;
if (firearm != null) 
{
    var damage = firearm.damage;
}

【讨论】:

  • 我使用了第一个,效果很好。编辑:第二个也可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
相关资源
最近更新 更多