Скажем, у меня есть флаг перечислимую:Как вы проверяете комбинацию флагов перечисления?
[Flags]
public enum ColorType
{
None = 0,
Red = 1 << 0,
White = 1<<1,
Yellow = 1 << 2,
Blue = 1 << 3,
All = Red | White | Yellow | Blue
}
У меня есть ниже функции, какой параметр является комбинацией флага, таких как DoSomething (ColorType.Blue | ColorType.Yellow).
public void DoSomethingr(ColorType theColorTypes)
{
if (theColorTypes.HasFlag(All)) Foo1();
if (theColorTypes.HasFlag(White) && theColorTypes.HasFlag(Red)) Foo2();
if (!theColorTypes.HasFlag(Blue)) Foo3();
. . .
}
Есть ли простой способ проверить всю возможную побитовую комбинацию флагов?
[Test]
public void Test1(ColorType.Red | ColorType.Yellow | ColorType.White)
[Test]
public void Test1(ColorType.Red | ColorType.Yellow | ColorType.white | ColorType.Blue)
Благодаря
Какой смысл теста? Проверить, работает ли атрибут 'Flags'? –