Как проверить, установлено ли более одного флага enum?

Я просто хочу знать, установлен ли ровно один флаг перечисления, а не какой. В настоящее время я думаю, чтобы проверить, является ли она степенью 2. Есть ли лучший способ, встроенный в типы enum?

[Flags]
enum Foo
{
Flag1 = 0x01,
Flag2 = 0x02,
Flag3 = 0x04,
Flag4 = 0x08,
Flag5 = 0x10,
Flag6 = 0x20,
Flag7 = 0x40,
Flag8 = 0x80
}

private bool ExactlynOneFlagSet(Foo myFoo)
{
  var x = (byte) myFoo;
  return (x != 0) && ((x & (x - 1)) == 0); //Check if a power of 2
}

if(!ExactlynOneFlagSet(Foo myFoo))
{
   //Do something
}

Ответы на вопрос(4)

Ваш ответ на вопрос