enum은 기본적으로 int를 상속받는다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [Flags] public enum PollyType : byte { /// <summary> /// 텍스트 입니다. /// <value>(byte)1</value> /// </summary> [XmlEnum("text")] Text = 1, /// <summary> /// 음성 입니다. /// <value>(byte)2</value> /// </summary> [XmlEnum("voice")] Voice = 1 << 1, /// <summary> /// 영상 입니다. /// <value>(byte)4</value> /// </summary> [XmlEnum("video")] Video = 1 << 2, /// <summary> /// 전체 입니다. /// <value>(byte)7</value> /// </summary> [XmlEnum("all")] All = (1 << 3) - 1 } | cs |
제목처럼 기본적으로 int를 상속받으므로, int 이외에는 명시해주어야 한다.
byte의 범위가 0~255 이므로 잘 참고해서 상속할 범위를 정해준다.
그리고 enum 타입이 비트 필드를 갖는다는 것을 표시하기 위해 [Flags]로 명시해준다.
OR 연산자를 이용해서 enum 변수에 다중값 설정
1 2 3 | // 1 + 4 = 5 // test = 5 var test = PollyType.Text | PollyType.Video; | cs |
AND 연산자를 이용해서 enum 변수가 특정 멤버를 포함하고 있는지 체크
1 2 3 4 5 6 | var test = PollyType.Text | PollyType.Video; // PollyType.Text가 포함되어 있다. if ((test & PollyType.Text) > 0) { } | cs |
'개발 > C#' 카테고리의 다른 글
[C#] Linq를 이용해서 n개의 값을 random하게 추출 (0) | 2018.07.27 |
---|---|
text에서 newline tag 를 br태그로 변경 (0) | 2018.05.17 |
checkboxlist 에서 선택된 item 가져오기 (0) | 2018.05.14 |
[C#] Enumerable.Range 을 이용해서 for문 대체해보자. (0) | 2018.05.08 |
[C#] 선택적 매개변수 (0) | 2018.03.14 |