当变量达到某个值时返回

时间:2014-10-12 01:13:44

标签: c#

我有一个包含五个广告位的广告资源。将项目添加到我的库存时,我会检查最佳插槽。如果所有插槽都已满,我想在控制台中显示一行并返回该方法,但我无法确定该部分。我知道最佳插槽的值只会从0到4,但我的if(bestSlot >= 4)不能正常工作。

int bestSlot = -1;
for (int i = 0; i < PlayerInventory.Items.Count(); i++)
{
  if (PlayerInventory.Items[i].ItemName == "empty")
  {
    if (bestSlot < 0)
    {
      bestSlot = i;
    }
  }
  else if (PlayerInventory.Items[i].ItemName != "empty")
  {
    if (PlayerInventory.Items[i].ItemName == item.ItemName)
    {
      bestSlot = i;
    }
  }
}

// add now
if (bestSlot >= 4)
{
  Console.WriteLine("inventory full");
  return;
}

if (bestSlot >= 0)
{ //add the item }

现在,该项目未添加到库存中,但(bestSlot>= 0)中的代码仍在运行,当控制台显示该行时,我的库存中有一个空插槽。

1 个答案:

答案 0 :(得分:0)

if (PlayerInventory.Items[4].ItemName != "empty" && PlayerInventory.Items[4].ItemName == item.ItemName)
{
  Console.WriteLine("inventory full");
  return;
}

在第一次阅读时你的问题并不是很清楚,但我认为你需要这个。您应该删除for循环以及循环bestSlot变量中的所有内容。在此之后找到所需的代码。

你的问题是你要进入PlayerIventory的所有元素,但是你只想检查5.你可以用我给你看的代码来做这个。