Section 22.3: 플래그 선언을 위한 << 표기법

플래그를 위한 enum 을 선언하는 경우, 각 플래그 값들로 하여금 이진수로 표현 시 단 하나의 1 값만 존재하여야 하는 플래그 특성에 부합함을 보장하기 위해 좌측 시프트 연산자 (<<) 를 사용할 수 있다. 이는 많은 수의 플래그들이 선언된 큰 크기의 enum 에 대해서도 높은 가독성을 보장하는 데에 도움을 줄 수 있다.

[Flags] public enum MyEnum { None = 0, Flag1 = 1 << 0, Flag2 = 1 << 1, Flag3 = 1 << 2, Flag4 = 1 << 3, Flag5 = 1 << 4, ... Flag31 = 1 << 30 }

위의 예제에서 확인할 수 있듯이, MyEnum 이 적절한 플래그들을 설정하고 있음을 명확히 할 수 있으며 Flag30 = 1073741822 (혹은 이진수 111111111111111111111111111110) 와 같이 실제 사용에 적합하지 않은 혼란스러운 코드를 포함하지 않도록 할 수 있다.

본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts