Это больше вопрос, который я прошу понять, а не выяснить проблему.Рассмотрим следующие два:
[Flags]
public enum Flags
{
NONE = 0x0,
PASSUPDATE = 0x1,
PASSRENDER = 0x2,
DELETE = 0x4,
ACCEPTINPUT = 0x8,
FADE_IN = 0x10,
FADE_OUT = 0x20,
FADE_OUT_COMPLETE = 0x40
}
[Flags]
public enum Flags
{
NONE = 0x0,
PASSUPDATE,
PASSRENDER,
DELETE,
ACCEPTINPUT,
FADE_IN ,
FADE_OUT,
FADE_OUT_COMPLETE
}
Если я выполняю битовую проверку чего-либо с использованием последнего перечисления, то иногда возникает совпадение (я думаю, что что-то вроде DELETE
интерпретируется как PASSUPDATE | PASSRENDER
, тогда как в первом примере каждыйзапись не зависит от других (т. е. DELETE
имеет значение только DELETE
и не может быть доказано с использованием комбинации другого набора флагов).