2013-02-28 81 views

回答

4

您可以通過反射測試屬性是否存在:

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榮。這是正確的:

var isFlags = myEnum.GetType() 
    .GetCustomAttributes(typeof(FlagsAttribute), false).Any(); 
1

您可以通過反射得到枚舉的屬性,看看如果使用的FlagsAttribute。