- 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)-简单枚举与标志枚举