This is the enum definition:
[Flags] enum Animals { None = 0, Dog = 1, Cat = 2, Horse = 4, Zebra = 8, }
Now, given the
HasFlag is effectively this:
HasFlag
HasFlag = (GivenFlag & Value) == GivenFlag; //"Anything" AND 0 == 0 --> always true