>>569
具体的にはどうするの??????
いろいろやってみたけど良い方法が思いつかない

  public class MyEnum {
    private int value;
    protected MyEnum(int value) { this.value = value; }
    protected abstract Type GetMyEnumType();
    public static List<MyEnum> GetEnums() {
      List<MyEnum> list = new List<MyEnum>();
      //Type t = this.GetType(); //静的メソッドだから出来ない
      foreach (FieldInfo fi in t.GetFields()) {
        if (fi.IsPublic) {
          list.Add((MyEnum)Activator.CreateInstance(fi.GetType()));
        }
      }
      return list;
    }
  }

  public class MyEnumA : MyEnum {
    protected MyEnumA(int value) : base(value) { }
    public static readonly MyEnumA Foo = new MyEnumA(0);
    public static readonly MyEnumA Bar = new MyEnumA(1);
  }