我正在为 C# 创建一个库存程序,到目前为止,我已经编写了一个函数来打印我库存中的所有项目,现在我正在创建一个函数来获取有关项目的更多信息。当我打印出我的库存时,它只会打印我的物品名称。此函数将打印所有详细信息,因此如果它是武器,它将打印它的名称、伤害和暴击。
所以这是我的 GetInfo 函数:
public void GetInfo()
{
Console.WriteLine("If you want more detail about an item, type the number to its left. \nOtherwise, type (Q)");
int getinfo;
int.TryParse(Console.ReadLine(), out getinfo);
getinfo -= 1;
if(getinfo > InventorySlots || getinfo < 0)
{
throw new System.Exception("You entered an invalid number");
}
if (weapons.Count >= getinfo)
{
Console.Clear();
Console.Write("Weapon Name: " + weapons[getinfo].name + "\nDamage: " + weapons[getinfo].damage + "\nCritical: " + weapons[getinfo].critical);
Console.ReadLine();
}
else if ((weapons.Count + armors.Count) >= getinfo)
{
Console.Clear();
Console.Write("Armor Name: " + armors[getinfo].name + "\nArmor Value: " + armors[getinfo].armor + "\nHealth Boost: " + armors[getinfo].healthboost);
Console.ReadLine();
}
else if ((weapons.Count + armors.Count + ores.Count) >= getinfo)
{
Console.Clear();
Console.Write("Ore Name" + ores[getinfo].name + "(" + ores[getinfo].stack + ")");
}
}
现在,问题在于声明:
if(weapons.Count >= getinfo
即使 getinfo 大于武器数量,也正在执行。如果语句无效,为什么会执行该语句?
谢谢。