有没有比我目前的方法更好的方法来获取/存储项目信息



如果我创建了一个新的枚举,例如:

enum itemName{
shortsword, ironChestplate, leatherCap}

对于每一项,我都有关于每一项的固定信息,存储和检索数据的最佳方式是什么?目前,我使用了一系列转换方法,这些方法使用switch语句来返回正确的信息,例如:

itemType convertItemNameToItemType(itemName itemName){
switch(itemName){
case itemName.shortsword:
return itemType.handEquipment;
case itemName.ironChestplate:
return itemType.bodyEquipment;
case itemName.leatherCap:
return itemType.headEquipment;
}
}
int convertItemNameToItemCost(itemName itemName){
switch(itemName){
case itemName.shortsword:
return 3;
case itemName.ironChestplate:
return 8;
case itemName.leatherCap:
return 2;
}
}

这些只是示例,但还有更多的转换方法可以返回有关所述项目的更多信息,以及更多的项目。这意味着有大量庞大的代码和大量的switch语句。

有没有更好的方法来存储和检索这些信息?此信息在整个程序运行过程中不会更改。

谢谢。

编辑:我所说的"更好"是指一种更高效、体积更小的方法来收集有关枚举的信息,而不仅仅是使用switch语句。我可能想得到的数据是(需要更多的列,但这只是一个例子(:

itemCost
itemNameitemTypeitemTrainingRequirement
短剑handEquipment3军事
ironChestplate
皮革帽headEquipment
enum itemName{    shortsword, ironChestplate, leatherCap}
//-- assuming you want to keep this enum - create following class
class { itemName Name, itemType iType, decimal itemCost}
//-- now create dictionary 
Dictionary<itemName, item> items = new ... 
//-- add all items in dictionary by creating objects 
// then when you need it - just return 
return items[itemName.shortword] and so on

如果你不需要enum,那么itemName可以是字符串,你可以遵循类似的方法

相关内容

  • 没有找到相关文章

最新更新