출처 : http://sjpison.tistory.com/1




다음의 코드는 열거형의 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,

    Status = 1 << 8,

    All = int.MaxValue

};

 

void test()

{

    //[Flags] 속성을 사용하면 아래와 같은 코드가 가능합니다.(두 속성을 하나의 변수에 담는 것):

    Column MyColumns = Column.Customer | Column.Contract;

 

    //값이 존재하는지 확인:

    if ((MyColumns & Column.Customer) != 0) return;

 

    //특정 값을 추가:

    MyColumns |= Column.Tech;

           

    //특정 값을 제거:

    MyColumns &= ~Column.Tech;

           

    //특정 값을 반전(1 0으로, 0 1):

    MyColumns ^= Column.Contract;

           

    //모든 값 삭제:

    MyColumns = Column.None;

           

    //모든 값 설정:

    MyColumns = Column.All;

           

    //특정 값을 제외하고 모두 설정:

    MyColumns = Column.All ^ Column.Tech ^ Column.Status;

 

}





Posted by motolies
,