我对编码还很陌生,因此这可能不是“最佳”的处理方式,但从本质上讲,我有这样的东西:
public class Item
{
public int itemID;
public string itemName;
}
public class Tool : Item
{
public int toolDurability;
}
我想创建一个字典,类似
public Dictionary<int,Item> itemDic = new Dictionary<int,Item>();
其中键是itemID
,而Item
是Item
。这样,我就有了一个数据库来为其提供一些itemID
,并且它吐出了适当的项目。问题是,如果我将类Tool
添加到该字典中,如果我尝试访问字典值,它将无法访问Tool
变量(因为字典仅指定了顶级“项目”类)。
如果我创建了几个不同的继承类,我将如何设置字典以使我能够基于其itemID
从字典中获取正确的类/项目类型。谢谢你。
答案 0 :(得分:2)
您可以执行以下操作。
输入
Dictionary<int,Item> itemDict = new Dictionary<int,Item>
{
[1] = new Item(){itemID = 2},
[2] = new Tool(){itemID=3, toolDurability=4}
};
您可以
foreach(KeyValuePair<int, Item> entry in itemDict)
{
switch(entry.Value)
{
case Tool tool:
Console.WriteLine(tool.toolDurability);
break;
case Item item:
Console.WriteLine(item.itemID);
break;
}
}