在 C# 中使用枚举
本文关键字:枚举 | 更新日期: 2023-09-27 17:55:20
由于我的游戏有一些模式(应该在初始化时提供),所以我想为它创建一个枚举。后来我想得到这个枚举的值。以下是我的代码-
enum GameMode : short
{
Stop = 0,
StartSinglePlayer = 4,
StartMultiPlayer = 10,
Debug = 12
}
class Game
{
static short GetValue(GameMode mode)
{
short index = -1;
if (mode == GameMode.Stop)
index = 0;
else if (mode == GameMode.StartSinglePlayer)
index = 4;
else if (mode == GameMode.StartMultiPlayer)
index = 10;
else if (mode == GameMode.Debug)
index = 12;
return index;
}
static void Main(string[] args)
{
var value = GetValue(GameMode.StartMultiPlayer);
}
}
我很想知道如果有的话,还有更好的方法来做同样的事情。
当然,有一种更简单的方法。只需将枚举转换为其基础数值数据类型:
value = (short)mode;
如果有多个
这样的开关,或者每种模式有不同的行为,那么我建议使用多态性而不是带开关的枚举。如果示例中的开关仅在使用GameMode
的地方,则 Heinzi 的解决方案更简单。但是,如果您遇到想要用GameMode
做与所展示的内容不同的事情的情况,我至少会记住这一点。