使用標記符號

左移運算子(<<)可用於標誌列舉宣告,以確保每個標誌在二進位制表示中只有一個 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)這樣不合適的任何雜亂的東西。