Значением состояния является флаг enum - это означает, что разные биты в нем означают разные вещи, и они могут быть объединены, чтобы рассказать вам несколько вещей о состоянии. Например
[Flags]
public enum States
{
Selected = 1;
OnScreen = 2;
Purple = 4;
}
Поэтому, если вы хотите увидеть, выбрано ли что-то, вы не можете просто сравнить его с выбранным (посмотрите, имеет ли оно значение int, равное 1), потому что оно может быть как выделенным, так и на экране (и оно будет иметь значение int 3). Выполняя побитовое сравнение, вы проверяете, установлен ли флаг Selected , игнорируя значение других флагов.