enum 타입을 Flags 사용하여 연산을 편리하게 함
[출처] enum 타입을 Flags 사용하여 연산을 편리하게 함. |작성자 jssharper
[C#] Flag 연산 총정리
C#의 Enum 타입에 대해 공부하려고 Enum values as bit flags - using FlagsAttribute을 읽다가 본문이 아닌 댓글에서 쓸만한 정보를 찾았다. Jeremy Lundy라는 사람이 Flag 연산에 대해 잘 정리해놨다.
[Flags] public enum Column { None = 0, Priority = 1 << 0, Customer = 1 << 1, Contract = 1 << 2, Description = 1 << 3, Tech = 1 << 4, Created = 1 << 5, Scheduled = 1 << 6, DueDate = 1 << 7, All = int.MaxValue };
[Flags] 애트리뷰트를 쓰면 이런 게 된다.
Column MyColumns = Column.Customer | Column.Contract;
Flag 값을 확인하려면:
if((MyColumns & Column.Customer) != 0)
특정 Flag 값을 주려면:
MyColumns |= Column.Tech;
특정 Flag 값을 제거하려면:
MyColumns &= ~Column.Tech;
특정 Flag 값을 반전시키려면:
MyColumns ^= Column.Contract;
Flag 값을 모두 제거하려면:
MyColumns = Column.None;
모든 Flag 값을 적용하려면:
MyColumns = Column.All;
한두 개의 Flag 값을 제외하고 전부 적용하려면:
MyColumns = Column.All ^ Column.Tech ^ Column.Status;
[출처] enum 타입을 Flags 사용하여 연산을 편리하게 함. |작성자 jssharper
'프로그래밍 > .Net' 카테고리의 다른 글
datagridview에서 keydown 처리 (0) | 2014.01.17 |
---|---|
캐스팅 (string) ToString() Convert.ToString 차이점 (0) | 2014.01.17 |
LINQ to XML 맛보기 (0) | 2014.01.17 |
Arraylist 사용 (0) | 2014.01.17 |
winform 최소화 (0) | 2014.01.17 |