[Flags]
enum Flaggy { None = 0, A=1, B=2, C=4, D=8}
Flaggy test;
или
bool A, B, C, D;
Является ли помеченное перечисление более эффективным, чем логическое значение, или это не имеет значения? В пересчете на процессор?
EDIT:
Да, я знаю, что [Flags] на самом деле ничего не делает по сравнению с перечислениями без флагов, кроме добавления метода .ToString () и некоторой читабельности. Ну, этот кусок кода проверяется примерно 25000+ раз в секунду, так что даже микро усиление того стоит. Но перечисление Flags Enum лучше читать в коде по сравнению с примерно 20 логическими значениями, а в .NET 4.0 HasValue () компенсирует ранее раздражающую проверку значений Flags. Но вызов метода вместо проверки if - это еще одна утечка микропроцессора.
Но, читая ответы, которые пришли так быстро, я полагаю, что это скорее выбор читабельности, чем производительность.