저는 현재 책이 C# 4.0 in a Nutshell인데, 이는 고급 프로그래머가 좋은 참고 자료로 사용하기에 훌륭한 책이라고 생각합니다.Enum.IsDefined 플래그가 지정된 열거 형
기본에 대한 장을 뒤돌아 보았습니다. 플래그가 지정된 enum을 사용할 때 특정 값이 Enum에 정의되어 있는지 알기 위해 트릭을 보았습니다.
이 책은 Enum.IsDefined
을 사용하여 플래그가 지정된 열거 형에서 작동하지 않는 상태 및 해결 방법이 같은 제안 : 특정 값이 플래그가 열거에 정의되어있는 경우
static bool IsFlagDefined(Enum e)
{
decimal d;
return (!decimal.TryParse(e.ToString(), out d);
}
이 사실 반환해야합니다.
누군가가 왜이 기능을 설명해 주시겠습니까? 한편
SomeValue, SomeOtherValue
: 정의 된 값이 같은 것을 반환합니다 [Flags]
속성으로 선언 된 유형의 enum
값에 ToString
를 호출 사전 : 기본적으로
은 Enum.IsDefined가 예상과 다른 동작을하는 경우 (또는 기본값 (T) 일 수도 있음)를 고려해야합니다. Enum.IsDefined (default (T))는 true 및 _false_를 모두 반환 할 수 있습니다. default (T) (여기서 T는 열거 형)는 항상 (T) 0을 반환하므로 T가 (T) 0에 대해 유효한 값을 가지지 않으면 결과는 false입니다. 최소한 한 번은 trhown을 꺼내십시오. –