我有一个基类和几个从它派生的类。
我想在基类中将一个枚举声明为抽象的,并且从它派生的每个类都必须创建自己不同的枚举。
我该怎么做?
我尝试了以下方法:在返回枚举类型的基类中声明一个抽象方法,每个实现它的类都将返回自己的枚举:
public abstract enum RunAtOptions();
但是我得到了编译错误
"The modifier abstract is not valid for this item"
最佳答案
您需要返回实际的枚举而不是 enum
关键字,所以如果您有这样的 enum
MyEnumType
:
public enum MyEnumType
{
ValueOne = 0,
ValueTwo = 1
}
public abstract MyEnumType RunAtOptions();
如果你想修改它以使用泛型,你可以让方法返回 T
并有一个约束使 T
成为一个结构:
public abstract T RunAtOptions() where T : struct;
C# 没有支持枚举类型的泛型约束。
关于c# 如何编写返回枚举的抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45455783/