使用标记符号

左移运算符(<<)可用于标志枚举声明,以确保每个标志在二进制表示中只有一个 1,如标志所示。

这也有助于提高大枚举的可读性,其中包含大量标记。

[Flags]
public enum MyEnum 
{
    None  = 0,
    Flag1 = 1 << 0,
    Flag2 = 1 << 1,
    Flag3 = 1 << 2,
    Flag4 = 1 << 3,
    Flag5 = 1 << 4,
    ...
    Flag31 = 1 << 30
}

现在显而易见的是,MyEnum 只包含适当的标志,而不是像 Flag30 = 1073741822(或二进制的 111111111111111111111111111110)这样不合适的任何杂乱的东西。