我应该使用静态类来存储数据吗?

FIC*_*EKK 2 c# unity-game-engine

我正在努力为我的RPG游戏存储和访问数据.

现在我需要存储一些经常被访问的常量并且应该是全局的.我所做的是创建一个包含所有常量的静态类.

public static class IndexOf
{
    public class Element
    {
        // Element ids in sprite array.
        public const int Water = 0;
        public const int Lava = 1;
        public const int Ice = 2;
    }

    public class Nature
    {
        // Nature (placed on tile)
        public const int Rock = 0;
        public const int Bush = 1;
    }

    public class Biome
    {
        //Biomes ids.
        public const int Mountain = 0;
        public const int River = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,有更好的方法可以做到这一点还是一个很好的解决方案?

Dmi*_*nko 5

我认为更好(代码将更易读和可维护)选择是切换到enum:

  public enum Element {
    Water = 0,
    Lava = 1,
    Ice = 2, 
  };

  public enum Nature {
    Rock = 0,
    Bush = 1,
  };

  public enum Biome {
    Moutain = 0,
    River = 1,
  };
Run Code Online (Sandbox Code Playgroud)

enum

  1. 更具可读性(enum专为保持常量而设计)
  2. 键入,所以你永远不会犯错误,int biome = Nature.Rock;因为Biome biome = Nature.Rock;不编译.
  3. 更容易被修改(添加新项目,说SandNature)