我知道你不能在枚举中使用继承,所以在我的基类中,我想定义实现它的类必须为属性返回某种类型的枚举。是否有一个C#枚举的基础对象?
理想的情况下,这将是这样的:
public abstract BaseEnum MyEnum { get; set; }
然后所有的实施者将不得不回到某种形式枚举。但显然BaseEnum不存在。我可以使用对象,但我宁愿不要。
有没有这样做的好方法?
编辑︰我这样问,因为我基本上想要在实现类中保留属性的名称相同 - 我知道我将无法使用基类中的枚举,但是如果我没有把它放在基础中,那么实现类可以为它们的属性名称决定它们的枚举类型,随着时间的推移它们可能会变得不清楚,因为它们会偏向它们自己的实现。
虽然枚举继承自“System.Enum”结构,但您无法真正使派生类更改返回类型。重写的方法将不得不声明它的返回类型'System.Enum'。 – 2010-01-14 08:53:28
我有兴趣听到这个问题的'为什么',继承是不存在的枚举,因为它没有任何意义:它们只是字节映射,所以不能真正互换? (例如,我不认为ListItemType与DayOfWeek可以互换) – 2010-01-14 08:55:08
我认为你的问题比技术更具社会性。您不需要在基类中指定它。只需在某处添加注释并记录应使用的样式和属性名称。 – 2010-01-14 09:31:27