在学习C#的阶段面临以下问题。有一个数组包含两个类字段和一个指向类本身的链接。
public void AddAllItems()
{
allItems[0, 0] = Blade.itemName;
allItems[0, 1] = Blade.cost;
allItems[0, 2] = new Blade();
}
我需要迭代其中的元素,因为我知道对类的引用将在哪里(第二个索引),所以我想调用Build()这个类的方法。
我该怎么做?
allItems[i, 2].Build(),当然,不起作用,因为据我所知,他事先并不知道这将是一个类参考。
我到底做错了什么,我该怎么办?
public void Sell(string itemName)
{
if (inventory.Contains(itemName))
{
for (int i = 0; i < allItems.Length; i++)
{
if (allItems[i, 0].ToString() == itemName)
{
allItems[i, 2].Build();
purse += (int)allItems[i, 1] / 2;
Console.WriteLine($"Great! You've sold {itemName} for {(int)allItems[i, 1]}!");
Console.WriteLine($"Your money: {purse}\n");
break;
}
}
}
else
{
Console.WriteLine("You don't have this in your inventory!\n");
}
}
解决方案:
首先为你的东西制作一个界面。
让它成为 IItem:
并将此接口用作数组: