类内或接口内定义的枚举继承后全部没办法再添加成员,除去特性和反射,还有什么好的方法么?
如果是这种情况,为什么不使用类呢?
像这样:
public class Base
{
public const int A = 1;
public const int B = 2;
public const int C = 3;
}
public class Child : Base
{
public const int D = 4;
public const int E = 5;
}
或者
public class MyBaseEnum
{
public static readonly MyBaseEnum A = new MyBaseEnum( 1 );
public static readonly MyBaseEnum B = new MyBaseEnum( 2 );
public static readonly MyBaseEnum C = new MyBaseEnum( 3 );
public int InternalValue { get; protected set; }
protected MyBaseEnum( int internalValue )
{
this.InternalValue = internalValue;
}
}
public class MyEnum : MyBaseEnum
{
public static readonly MyEnum D = new MyEnum( 4 );
public static readonly MyEnum E = new MyEnum( 5 );
protected MyEnum( int internalValue ) : base( internalValue )
{
// Nothing
}
}
另外,你不应该在类或接口中定义枚举。