[C#] Flag 연산 총정리

  • Post author:
  • Post category:
  • Post comments:4 Comments
  • Post last modified:August 8, 2008

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;
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
follow me
  • 싸이월드 법인가 뭔가 화제였는데 이런 게 훨씬 현실적인 접근이다 https://t.co/fSB9LiMYzO
    1 day ago
  • 시장을 좋게 보는 사람을 좋게 볼 근거를 찾고 그렇지 않은 사람은 나쁘게 볼 근거만 열심히 찾네. 그 반대로 해야 얻는 게 있을텐데
    1 day ago
  • 일본이 liberal country 라는 말이 마음에 걸리네 https://t.co/aLteP9gEE8
    2 days ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts