Есть ли более простой способ написания базовых чисел в Flags? - PullRequest
1 голос
/ 18 марта 2011

Есть ли более простой способ записать целочисленное значение для флагов перечисления без необходимости запоминать КАЖДЫЙ номер основания 2 (я склонен потеряться после 4096)?

Если я использую, скажем, 2*2*2*2Будет ли он преобразован в 16 во время компиляции или он будет выполняться во время выполнения?

Ответы [ 2 ]

4 голосов
/ 18 марта 2011

Вы можете использовать гекс, который немного более интуитивно понятен.

Value1 = 0x01,
Value2 = 0x02,
Value3 = 0x04,
...

Или использовать битовые сдвиги.

Value1 = 1 << 0,
Value2 = 1 << 1,
Value3 = 1 << 2,
....
4 голосов
/ 18 марта 2011
    public enum Foo
    {
        Bar  = 1 << 0,
        Baz  = 1 << 1,
        Quux  = 1 << 2,
        Etc  = 1 << 3
    }
...