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)
在上面的代码中,我想要attacker并victim继承GameObjectController和实现ICombatant.这在语法上是否可行?
我要说它可能表明你可以以某种方式进行重组,例如,有一个攻击者和受害者继承的基础战斗者类,它继承自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)
虽然我可能不会.