번역/C# Notes for Professionals
22.4: 비트 논리 연산 (bitwise logic) 을 통해 플래그 스타일의 enum 값 검사하기
노초코
2021. 6. 18. 22:42
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/
반응형