반응형
1 2 3 4 5 6 7 8 9 10 | [Flags] public enum MonsterType { None = 0, Human = 1 << 0, Flyer = 1 << 1, Machine = 1 << 2, Fish = 1 << 3, All = int.MaxValue }; | cs |
먼저 [Flags] 기능 은
이를 이용하면 여러 속성을 선택하는 것이 가능합니다.
코드는 열거형의 예시로 정리한것입니다.
다음은 Flag 어트리뷰트 된 enum이 여러 속성을 선택할수 있게 연산하는 예입니다.
연산을 하게 되면 . 열거 값을 유지하면서 열거 값을 결합 할 수 있습니다.
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 28 29 30 31 32 33 34 35 36 | [Flags] public enum MonsterType { None = 0, Human = 1 << 0, Flyer = 1 << 1, Machine = 1 << 2, Fish = 1 << 3, All = int.MaxValue }; MonsterType MyType = MonsterType.Human | MonsterType.Flyer ; //값이 존재하는지 확인: if((MyType & MonsterType.Human ) != 0) //특정 값을 추가: MyType |= MonsterType.Machine ; //특정 값을 제거: MyType &= ~MonsterType.Machine ; //특정 값을 반전(1은 0으로, 0은 1로): MyType ^= MonsterType.Contract; //모든 값 삭제: MyType = MonsterType.None; //모든 값 설정: MyType = MonsterType.All; //특정 값을 제외하고 모두 설정: MyType = MonsterType.All ^ MonsterType.Human ^ MonsterType.Machine ; | cs |
반응형
'C#' 카테고리의 다른 글
[C#] 정의한 enum 을 array로 변환해 처리하기 (0) | 2019.02.19 |
---|---|
[C#] 홀수, 짝수 구분하기 (0) | 2019.01.24 |
[c#] 델리게이트 예시 (0) | 2019.01.04 |
[C#] 문자열에 특정 문자열이 포함 여부 확인 (0) | 2018.12.03 |
[C#] 삼항연산자 (0) | 2018.11.23 |