мне нужно иметь игрока оборудовать пункт, как показано здесь:Обработка коллекций объектов с помощью переключателя заявление
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..
}
}
Я получаю сообщение об ошибке, что переключатель experession должен быть логическим значение, символ, строка, интеграл, перечисление или соответствующим обнуляемого типа.
Я мог бы справиться с этим, используя метод equit в каждом из классов моего оружия/щита и передать класс player
в качестве параметра. Но я чувствую, что это немного нелогично, так как игрок должен экипировать предмет, а не предмет, который экипирует его на игроке.
Используйте операторы 'if'. – SLaks
Какой тип 'Player.weapon' и' Player.shield'? – Jon