C# 枚举(enum)-设计

  • C# 枚举(enum)-基础
  • C# 枚举(enum)-设计
  • C# 枚举(enum)-简单枚举与标志枚举

以下是使用枚举时几条好的建议。

优先考虑使用枚举,而不是类的静态常量

比如:

public static class Day
{
    public static int Sun = 1;
    public static int Mon = 2;
    public static int Tue = 3;
    //...
}

应该使用如下的枚举:

enum Day { Sun = 1, Mon, Tue, Wed, Thu, Fri, Sat };

如果参数、返回值、变量等类型可以是枚举,则不要使用其它基础类型

比如:

Range r = Range.MAX; //好
int r = (int)Range.MAX; //不好

枚举命名

枚举一般使用名词或名词组合,简单枚举使用单数,标志枚举使用复数。

大多数情况下不需要更改枚举的默认类型

也就是说大多数情况下,使用 int(System.Int32)作为枚举类型。除非:

  • 枚举是标志枚举,且标志多于 32 个(此时 int 类型装不下)。
  • 枚举被非常大量且频繁地使用,为了节约空间使用小于 int 的类型。
  • 不得不使用其它类型的情况。

不要在枚举中设置哨兵

我们可能觉得在枚举的两端加上哨兵,这样在判断一个数是否在枚举中时,只需要判断是否在哨兵之中。非常不幸,我们不应该这么做,这破坏了枚举的意义。

enum Day {FirstValue, Sun, Mon, Tue, Wed, Thu, Fri, Sat, LastValue }; //FirstValue、LastValue 应该去掉
  • C# 枚举(enum)-基础
  • C# 枚举(enum)-设计
  • C# 枚举(enum)-简单枚举与标志枚举

你可能感兴趣的