아래에 깃발 열거 형이 있습니다.
[Flags]
public enum FlagTest
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4
}
if 문을 true로 평가할 수 없습니다.
FlagTest testItem = FlagTest.Flag1 | FlagTest.Flag2;
if (testItem == FlagTest.Flag1)
{
// Do something,
// however This is never true.
}
어떻게하면 되나요?
None
0 에서는 플래그를 값으로 제공하는 것이 좋습니다 . msdn.microsoft.com/en-us/library/vstudio/…
&
비교 연산자를 |
첨가 같다 : 1|2=3
, 5|2=7
, 3&2=2
, 7&2=2
, 8&2=0
. 0
로 평가하고 false
그 밖의 모든 것을 평가합니다 true
.