我有一个基类和几个派生自它的类.
我想将基类中的枚举声明为抽象,并且从中派生的每个类都必须创建自己的不同枚举.
我该怎么做?
我尝试了以下方法:在基类中声明一个返回枚举类型的抽象方法,每个实现它的类都将返回它自己的枚举:
public abstract enum RunAtOptions();
Run Code Online (Sandbox Code Playgroud)
但我得到编译错误
"The modifier abstract is not valid for this item"
Run Code Online (Sandbox Code Playgroud)
你需要返回实际的枚举而不是enum关键字,所以如果你有enum MyEnumType这样的:
public enum MyEnumType
{
ValueOne = 0,
ValueTwo = 1
}
public abstract MyEnumType RunAtOptions();
Run Code Online (Sandbox Code Playgroud)
如果你想修改它以使用泛型,你可以让方法返回T并有一个约束来创建T一个结构:
public abstract T RunAtOptions() where T : struct;
Run Code Online (Sandbox Code Playgroud)
C#没有泛型约束来支持枚举类型.
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |