Для тех, кому трудно визуализировать, что происходит с принятым решением
(что это такое),
if ((testItem & FlagTest.Flag1) == FlagTest.Flag1)
{
// Do stuff.
}
testItem
(в соответствии с вопросом) определяется как
testItem
= flag1 | flag2
= 001 | 010
= 011
Тогда в операторе if левая часть сравнения будет иметь вид
(testItem & flag1)
= (011 & 001)
= 001
И полный оператор if (который оценивается как true, если flag1
установлен в testItem
),
(testItem & flag1) == flag1
= (001) == 001
= true