C#:指定一个函数arg必须从一个类继承,并实现一个接口?

Nic*_*ner 2 c# oop inheritance interface

我正在制作一个游戏,其中每个Actor都由一个代表GameObjectController.可以参与战斗工具的游戏对象ICombatant.如何指定战斗函数的参数必须继承GameObjectController并实现ICombatant?或者这是否表明我的代码结构不合理?

public void ComputeAttackUpdate(ICombatant attacker, AttackType attackType, ICombatant victim)
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我想要attackervictim继承GameObjectController和实现ICombatant.这在语法上是否可行?

Jim*_*mmy 6

我要说它可能表明你可以以某种方式进行重组,例如,有一个攻击者和受害者继承的基础战斗者类,它继承自GameObjectController并实现ICombatant.

但是,你可以做点什么

ComputeAttackUpdate<T,U>(T attacker, AttackType attackType, U victim)
      where T: ICombatant, GameObjectController
      where U: ICombatant, GameObjectController
Run Code Online (Sandbox Code Playgroud)

虽然我可能不会.