Rob*_*t D 1 c# generics abstract-class
我有一个类继承了一个继承另一个抽象类的抽象类.我可以将最超级的类定义为通用的,但我不知道如何在我在最终ListResults类中表达我想要的实际类型之前将中间类定义为泛型.
internal abstract class LowerCommand<T> {
public abstract void Execute();
public abstract List<T> ExecuteList();
}
// currently gives error for `T`
internal abstract class HigherCommand : Lowercommand<T> {
// ... defines other stuff, nothing to do with
// already instantiated methods or T ...
}
class ListResults : HigherCommand<Results>
{
public override void Execute() {...}
public override List<Results> ExecuteList() {...}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
您仍然需要在定义上定义泛型类型参数T,HigherCommand以便它可以依次正确定义LowerComand.
internal abstract class LowerCommand<T> {
public abstract void Execute();
public abstract List<T> ExecuteList();
}
// Note that HigherCommand require a declaration of `T`
internal abstract class HigherCommand<T> : Lowercommand<T> {
// ... defines other stuff, nothing to do with
// already instantiated methods or T ...
}
class ListResults : HigherCommand<Results>
{
public override void Execute() {...}
public override List<Results> ExecuteList() {...}
}
Run Code Online (Sandbox Code Playgroud)