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/

반응형

+ Recent posts