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/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
22.5: enum 변수에 플래그 값을 추가하거나 제거하기 (0) | 2021.06.18 |
---|---|
22.4: 비트 논리 연산 (bitwise logic) 을 통해 플래그 스타일의 enum 값 검사하기 (0) | 2021.06.18 |
22.2: Enum 값을 플래그 (flag) 로 사용하기 (0) | 2021.05.14 |
22.1: Enum 에 대한 기본 사항들 (0) | 2021.05.12 |
22: Enum (0) | 2021.05.12 |