나는 우리가 플래그 속성을 필요로하는 이유가 궁금 다음 열거플래그 속성이 필요합니까?
enum TestType
{
None = 0x0,
Type1 = 0x1,
Type2 = 0x2
}
를 정의하면 나는 비트 연산을 수행 할 수 있습니다, 또는 플래그 속성없이 발견?
나는 우리가 플래그 속성을 필요로하는 이유가 궁금 다음 열거플래그 속성이 필요합니까?
enum TestType
{
None = 0x0,
Type1 = 0x1,
Type2 = 0x2
}
를 정의하면 나는 비트 연산을 수행 할 수 있습니다, 또는 플래그 속성없이 발견?
C#을 그들에게 같은 방법 중 하나를 치료하지만, C#을 수있는 유일한 소비자되지 않습니다 :
PropertyGrid
이/조합XmlSerializer
받아 들일 수 있도록 다르게 렌더링이 플래그에 따라 구분 된 조합을 거부Enum.Parse
마찬가지로 (문자열에서), 그리고 열거의 .ToString()
는 표시 또는 값이 그들을 다른 취급 처리하는 다른 코드의 다른더 중요한 것은 다른 개발자 (및 코드)에게 의도를 표현한 것입니다. 이것은 배타적 값이 아닌 조합으로 처리하기위한 것입니다.
ToString을 언급하는 것이 일반적일까요? –
@ 존 - 완료; 감사 –
가끔 enum
값의 비트 조합은 의미가 있습니다 (예 : FileAccess
- 읽기, 쓰기, 읽기 + 쓰기). 때로는 (보통) 그렇지 않습니다. 따라서 [Flags]
은이 열거 형에서 의미가있는 비트 연산자가 인 메타 데이터 정보를 저장하는 기술적 인 방법입니다. 이 속성의 소비자가 여러 명 있습니다 (예 : ToString
).
가능한 [Enum Flags Attribute] (http://stackoverflow.com/questions/8447/enum-flags-attribute) – BoltClock
의 복제본 사실 나는 그것이 속는 사람이라고 생각하지 않습니다. 그 dup doesn''t는 * 그것이 왜 필요한지 만진다 *. 모든 예제들이 똑같이 작동합니다. –
@Marc : 흠, 방금 일부 답변을 살펴 봤는데 거기에 포인트가 있습니다. – BoltClock