如果我创建了一个新的枚举,例如:
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语句。我可能想得到的数据是(需要更多的列,但这只是一个例子(:
itemName | itemType | itemCostitemTrainingRequirement | |
---|---|---|---|
短剑 | handEquipment | 3 | 军事 |
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可以是字符串,你可以遵循类似的方法