我正在编写一系列基于数学的类,每个类都继承自一个抽象类.我希望我的抽象类有一个名为Parameters的getter和setter.
public abstract dynamic Parameters {get; set;}
Run Code Online (Sandbox Code Playgroud)
然后在每个单独的数学类中,我想实现具有某种类型的参数:
如果课程需要一段时间,我会这样做:
public override IPeriod Parameters {get; set;}
Run Code Online (Sandbox Code Playgroud)
这不编译.显然我可以将返回类型改为dynamic,它会起作用,但后来我失去了智能感知.有没有一种标准的方法可以做到这一点而不会失去intellisense?
每个类都有一个参数{get; set;}但是它们将是一个不同的类型.从抽象类中消除参数更好吗?
Qui*_*son 11
是的,使用泛型..
public MyAbstractBaseClass<T>
{
public abstract T Parameters {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以继承指定将用于param的类型.
public PeriodClass : MyAbstractBaseClass<IPeriod>
{
public override IPeriod Parameters {get; set;}
}
Run Code Online (Sandbox Code Playgroud)