C#
[C#] enum 에서 Flags 속성달기
송호정
2019. 1. 10. 16:28
반응형
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 |
반응형