개체가 Enum인지 테스트


90

'theObject'가 열거 형 (모든 열거 형 유형)인지 알고 싶습니다.

 foreach (var item in Enum.GetValues(theObject.GetType())) {

     //do something
 }

답변:


205

질문이 답입니다. :)

bool isEnum = theObject is Enum;

13
그것을 사랑하십시오! 그리고 질문에 더 가깝습니다 : if (theObject is Enum) {...}
Peter Lillevold

5
이것은 내가 여기에 온 것도 아니고 당신에게 요점을주고 있습니다. 너무 ... 깨끗 ... <냄새>, 그것의 아름다운 남자 TT
루카스

12
/ * Test * / if (anObject is / * an * / Enum) {}
Tom Fobear 2014-06-27

bool isEnum = theObject.GetType (). IsEnum; 더 낫습니다. Enum이 항상 사실을 반환하는 것은 아닙니다
chris hu

69

가있는 경우 속성을 Type사용합니다 Type.IsEnum. 예 :

bool isEnum = theObject.GetType().IsEnum;

2
이것은 나를 위해 일했습니다. VB.NET에서 허용되는 답변을 작동시키는 방법을 알아낼 수 없었습니다.
Shea Daniels

4
실제로 TypeEnum 유형 인지 확인하는 방법을 알아야했습니다 . +1
Nathan


1

일반 유형 매개 변수의 경우 매개 변수를 테스트하는 대신 제한 할 수 있습니다.

where T : Enum
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.