Приложение к Марку Гравеллу и ответ Вилкса:
Ваше помеченное перечисление не должно указывать сумму для «Все», оно должно просто включать ваши существующие значения. Это касается любых вычисленных значений.
[Flags]
public enum Time
{
None = 0,
Current = 1,
Past = 2,
Future = 4,
All = Current | Past | Future
}
Обратите внимание, что Vilx - убрал использование шестнадцатеричного значения. Это важно, потому что как только вы пройдете 0x8, ваши значения должны будут соответствовать Hex. Вы должны просто остаться в десятичном виде.
EDIT:
Я также хочу добавить, что вы можете использовать битовое смещение, а не шестнадцатеричное / десятичное.
Это выглядит так:
[Flags]
public enum Time
{
None = 0,
Current = 1,
Past = 1 << 1, // 2, 10 binary
Future = 1 << 2, // 4, 100 binary
All = Current | Past | Future
}