열거 형이 [Flags] enum
이거나 일반 전화 인 enum
인 경우 반영 방법을 테스트 할 수 있습니까?플래그 열거 형과 일반 열거 형의 차이점을 구별하는 방법은 무엇입니까?
열거 형이 열거 형 열거 형인 경우 응용 프로그램이 Flags 열거 형이 아닌 경우보다 약간 다르게 동작해야합니다.
열거 형이 [Flags] enum
이거나 일반 전화 인 enum
인 경우 반영 방법을 테스트 할 수 있습니까?플래그 열거 형과 일반 열거 형의 차이점을 구별하는 방법은 무엇입니까?
열거 형이 열거 형 열거 형인 경우 응용 프로그램이 Flags 열거 형이 아닌 경우보다 약간 다르게 동작해야합니다.
당신은 반사를 통해 속성의 존재 여부를 테스트 할 수 있습니다
System.Attribute[] attrs = System.Attribute.GetCustomAttributes(t);
var isFlags = attrs.Any(attr => attr is FlagsAttribute);
또는를 :
var isFlags = typeof(MyEnum).GetCustomAttributes<FlagsAttribute>().Any();
참조 : http://msdn.microsoft.com/en-us/library/z919e8tw(v=vs.80).aspx
[OP 편집 :]
이 일, 하지만 구문은 약간 w이다. rong. 올바른지 :
var isFlags = myEnum.GetType()
.GetCustomAttributes(typeof(FlagsAttribute), false).Any();
열거 형의 특성을 가져 와서 FlagsAttribute가 사용되는지 확인할 수 있습니다.