Индекс находился вне границ массива в классах
Почему выводит, что индекс вне границ. Необходимо чтобы Player добавил к себе в инвентарь Item из массива продавца.
static void Main(string[] args)
{
Player player1 = new Player(new Item[]
{
new Item("Apple")
});
player1.ShowInventory();
Trader trader1 = new Trader(new Item[]
{
new Item("Cake"),
new Item("Cola")
});
trader1.ShowShop();
player1.Buy(trader1.TraderItems[0]);
Console.ReadKey();
}
}
public class Player
{
public Item[] PlayerItems= new Item[4];
public Player(Item[] playerItems)
{
PlayerItems = playerItems;
}
public void ShowInventory()
{
Console.WriteLine("Это ваш инвентарь");
for (int i = 0; i < PlayerItems.Length; i++)
{
Console.WriteLine(i + " - " +PlayerItems[i].Name);
}
}
public void Buy(Item buy)
{
PlayerItems[1] = buy;
Console.WriteLine("Поздравляю вы купили " + buy.Name);
}
}
public class Item
{
public string Name;
public Item(string name)
{
Name = name;
}
}
public class Trader
{
public Item[] TraderItems;
public Trader(Item[]traderItems)
{
TraderItems = traderItems;
}
public void ShowShop()
{
Console.WriteLine("Добро пожаловать в мой магазин");
for (int i = 0; i < TraderItems.Length; i++)
{
Console.WriteLine(i+ " - " + TraderItems[i].Name);
}
}
}
В результате выполнения кода получаю ошибку на строке:Public void Buy(Item buy)