【发布时间】:2020-12-13 15:56:59
【问题描述】:
例如,您有一个具有声音类型的对象,并且基于枚举,特定函数会根据类型播放不同的声音
public enum ObjectType{
Type1,
Type2,
Type3
}
public class Object{
public ObjectType type;
public Sound sound;
private void DoThing(){
if(type == ObjectType.Type1){
sound = Load("sounds/sound1");
}
if(type == ObjectType.Type2){
sound = Load("sounds/sound2");
}
//etc...
}
}
我想我的问题是,当这个枚举的大小增长到几十或几百时,组织和测试枚举以返回另一个值的最佳做法是什么?
我应该使用开关盒而不是一堆 if 测试吗?主要是关于组织,这些函数并不占用大量资源,也不会使用大量计算,所以性能并不是我真正关心的问题,主要是可读性。
【问题讨论】:
-
作为一种礼貌的推动,如果您发布格式正确、语法正确的代码,它会有所帮助。上面的代码无法编译,因为 'type.Type1' 不是正确的代码,并且格式难以阅读。
标签: c# if-statement enums switch-statement organization