【发布时间】:2011-06-09 21:43:53
【问题描述】:
可能重复:
Enum “Inheritance”
我有许多扩展抽象类的类。抽象父类定义了一个带有一组值的枚举。有些子类继承父类的枚举值,但有些子类需要枚举值不同。有没有办法以某种方式覆盖这些特定子类的枚举,如果没有,什么是实现我所描述的好方法?
class ParentClass
{
private MyEnum m_EnumVal;
public virtual MyEnum EnumVal
{
get { return m_EnumVal; }
set { m_EnumVal = value; }
}
public enum MyEnum { a, b, c };
}
class ChildClass : ParentClass
{
private MyEnum m_EnumVal;
public virtual MyEnum EnumVal
{
get { return m_EnumVal; }
set { m_EnumVal = value; }
}
public enum MyEnum { d, e, f };
}
【问题讨论】:
-
不能覆盖枚举,C# 不支持返回类型协方差。您将不得不找到其他方法;这是不可能的。
-
@Cody Gray:我很清楚这一点。我想知道最好的解决方案是什么。
标签: c# inheritance enums