Section 22.4: 비트 논리 연산 (bitwise logic) 을 통해 플래그 스타일의 enum 값 검사하기
플래그 스타일의 enum 값은 어느 특정 값 하나로 부합 여부를 확인할 수 없는 경우가 있으므로, 비트 논리 연산 (bitwise logic) 을 통해 검사를 수행하여야 한다.
[Flags]
enum FlagsEnum
{
Option1 = 1,
Option2 = 2,
Option3 = 4,
Option2And3 = Option2 | Option3,
Default = Option1 | Option3,
}
Default
라는 값은 실제적으로 두개의 다른 값들이 비트 논리연산자 OR
을 통해 결합된 값이다. 그러므로 특정 플래그가 설정되어 있는지를 확인하기 위해서는 비트 논리 연산자 AND
를 이용하여야 한다.
var value = FlagsEnum.Default;
bool isOption2And3Set = (value & FlagsEnum.Option2And3) == FlagsEnum.Option2And3;
Console.WriteLine(isOption2And3Set);
출력 결과 :
False
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
22.6: Enum 을 문자열에서 변환하거나 문자열로 변환하기 (0) | 2021.06.21 |
---|---|
22.5: enum 변수에 플래그 값을 추가하거나 제거하기 (0) | 2021.06.18 |
22.3: 플래그 선언을 위한 << 표기법 (0) | 2021.05.18 |
22.2: Enum 값을 플래그 (flag) 로 사용하기 (0) | 2021.05.14 |
22.1: Enum 에 대한 기본 사항들 (0) | 2021.05.12 |