在这种情况下,我会定义一个通用的实现你的抽象类的,这样你得到的东西是这样的:
public abstract class EngineBase<T>
{
public abstract void Refuel(T parameters);
}
然后你实现这个样子:
public class ElectricEngine : EngineBase<ElectricParameters>
{
public override void Refuel(ElectricParameters parameters) { }
}
或者,您可以定义一个接口,并将具体实现传递给您的方法:
public abstract class EngineBase
{
public abstract void Refuel(IRefuelParameters parameters);
}
然后你实现这个样子:
public class ElectricEngine : EngineBase
{
public override void Refuel(IRefuelParameters parameters)
{
if(!(parameters is ElectricParameters))
throw ApplicationException("Not the right params!");
ElectricParameters rightParams = parameters as ElectricParameters;
}
}
是否有任何常见的参数为电动和燃油发动机加油? – tomasmcguinness 2011-04-08 15:17:47