(我希望这是我想要达到的正确描述 - 随意更改标题)
我正在制作一款小游戏,它将拥有不同的 GameStates 。通常我会将它们放在enum
中。但这次我想做以下事情:
enum GameState
{
Menu
Game.Playing
Game.Paused
...
}
这显然不起作用。我该如何解决这个问题?
答案 0 :(得分:3)
真的是否必要?或者你可以使用
enum GameState
{
Menu
Game_Playing
Game_Paused
...
}
如果你真的需要一些高级行为,那么你需要一个更聪明的枚举,由类和子类组成。类似的东西:
abstract class GameState { }
class Menu : GameState { }
class Game : GameState
{
private class _Playing : GameState { }
private class _Paused : GameState { }
static readonly GameState Playing = new _Playing();
static readonly GameState Paused = new _Paused();
}
这真的值得吗?
答案 1 :(得分:2)
没有办法直接执行此操作,但您可以使用嵌套的static
类“模拟”嵌套枚举。
简单但不强类型的方法:
static class GameState
{
public const int Menu = 0;
public static class Game
{
public const int Playing = 1;
public const int Paused = 2;
}
}
答案 2 :(得分:0)
您无法定义嵌套的枚举,但您可以在类中使用多个枚举,但它不会像树结构。
public static class GameState
{
public enum Game {
Playing,
Paused,
,etc..
}
public enum Menu {
Menu1,
Menu2
}
}