using System;
using System.Linq;
public class Test
{
public enum A {Quick,Brown,Fox}
public enum B {Jumps,Over,The,Lazy,Dog}
public A EnumA {get;set;}
public B EnumB {get;set;}
public static void Main()
{
var testObj = new Test();
var enumProps = testObj.GetType().GetProperties().Where(p => p.PropertyType.IsEnum).ToList();
Console.WriteLine("{0} enum properties", enumProps.Count());
foreach (var prop in enumProps)
{
var propType = prop.PropertyType;
var valueCount = Enum.GetValues(propType).Length;
Console.WriteLine("{0} has {1} values", prop.Name, valueCount);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBlbnVtIEEge1F1aWNrLEJyb3duLEZveH0KCXB1YmxpYyBlbnVtIEIge0p1bXBzLE92ZXIsVGhlLExhenksRG9nfQoJCglwdWJsaWMgQSBFbnVtQSB7Z2V0O3NldDt9CglwdWJsaWMgQiBFbnVtQiB7Z2V0O3NldDt9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgdGVzdE9iaiA9IG5ldyBUZXN0KCk7CgkJdmFyIGVudW1Qcm9wcyA9IHRlc3RPYmouR2V0VHlwZSgpLkdldFByb3BlcnRpZXMoKS5XaGVyZShwID0+IHAuUHJvcGVydHlUeXBlLklzRW51bSkuVG9MaXN0KCk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoInswfSBlbnVtIHByb3BlcnRpZXMiLCBlbnVtUHJvcHMuQ291bnQoKSk7CmZvcmVhY2ggKHZhciBwcm9wIGluIGVudW1Qcm9wcykKewogICAgICAgdmFyIHByb3BUeXBlID0gcHJvcC5Qcm9wZXJ0eVR5cGU7IAoKICAgICAgIHZhciB2YWx1ZUNvdW50ID0gRW51bS5HZXRWYWx1ZXMocHJvcFR5cGUpLkxlbmd0aDsKICAgICAgIAogICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoInswfSBoYXMgezF9IHZhbHVlcyIsIHByb3AuTmFtZSwgdmFsdWVDb3VudCk7Cgp9Cgl9Cn0=