我需要让玩家装备一件物品,如下所示:
IEquiptable
是一个接口。
这个方法在我的player
课堂上。
public void equip(IEquiptable equipable)
{
switch (equipable.GetType())
{
case equipable is Weapons:
this.weapon = equipable;
break;
case equipable is Shield:
this.shield = equipable
break;
//etc etc..
}
}
我收到一个错误,即 switch experession 必须是 bool、char、string、integral、enum 或相应的可为空类型。
我可以通过在我的每个武器/盾牌等类中使用一个 equit 方法并将我的player
类作为参数传递来处理它。但我觉得这有点不合逻辑,因为玩家应该装备一件物品,而不是一件物品将它自己装备在玩家身上。