显然,由于compareItem变量的多个声明,以下代码是错误的。 但是为了理解这是我希望这段代码的工作方式。
{{1}}
根据交换机的结果,实现像Item类或Item类数组实例化compareItem的最佳方法是什么?
答案 0 :(得分:5)
您可以使用一个变量。由于您使用Item[]
和Item
,因此您可以使用一个Item[]
。如果是盔甲,盾牌,手枪和手榴弹,它只包含一个项目:
Item[] compareItems = null;
switch (objectType)
{
case "Armor":
compareItems = new Item[]{ player.armor };
break;
case "Shield":
compareItems = new Item[]{ player.shield };
break;
case "Medikit":
compareItems = new Item[]{ player.medikit };
break;
case "Grenade":
compareItems = new Item[]{ player.grenade};
break;
case "Weapon":
compareItems = player.weapons;
break;
case "Bullet":
compareItems = player.bullets;
break;
default:
return;
}
无论如何,你的逻辑必须处理数组。
答案 1 :(得分:-1)
您可以在此处使用dynamic
。例如
dynamic compareItems;
switch (objectType)
{
case "Armor":
compareItems = new Item[]{ player.armor };
break;
case "Shield":
compareItems = new Item[]{ player.shield };
break;
case "Medikit":
compareItems = new Item[]{ player.medikit };
break;
case "Grenade":
compareItems = new Item[]{ player.grenade};
break;
case "Weapon":
compareItems = player.weapons;
break;
case "Bullet":
compareItem = player.bullets;
break;
default:
return;
}