将冒号和类型名放在枚举名之后以设置底层类型:
尽管枚举类型不能有重复的名称,但可以有重复的值。
枚举可实现位标志的应用:
选取足够长度的无符号类型作为枚举底层类型。
确定每个位置代表的含义。
[Flags]
enum CardDeckSettings : uint
{
SingleDeck = 0b0001, // 位 0
LargePictures = 0b0010, // 位 1
FancyNumbers = 0b0100, // 位 2
Animation = 0b1000, // 位 3
}
|)运算符设置标志位。
使用按位与(&)运算符或 HasFlag 方法检查是否设置了特定标志位。
HasFlag 方法。
&。
Flags 特性不改变计算结果,其作用如下:
对于上述代码,如果没有 [Flags] 特性,将会有如下输出:
加上特性后,ToString 方法返回结果将会发生改变: