我有一个基类,它与派生泛型类是非泛型的。 AbstractRepository和ILoggingManager由IoC框架提供。
基类
public abstract class EventHandlerBase
: AbstractDataProvider
, IEventHandler
{
public EventHandlerBase(
AbstractRepository data,
ILoggingManager loggingManager
)
: base(data, loggingManager)
{
}
}
派生类
public abstract class EventHandlerBase<TDetail>
: EventHandlerBase
where TDetail : Contracts.DeliveryItemEventDetail
{
}
我想在派生类中声明一个构造函数,它将调用非泛型基类,但我不知道语法。
答案 0 :(得分:4)
public class EventHandlerBase(AbstractRepository data,
ILoggingManager loggingManager)
: base(data, loggingManager)
{
// Whatever
}
应该可以正常工作。如果没有,你能表明你遇到的问题吗?
编辑:我认为整个基类可能会让问题蒙上阴影。在泛型类型中声明构造函数时,不指定类型参数。例如,List<T>
看起来像:
public class List<T>
{
public List()
{
}
}
我们的想法是,在类声明中,T
已知 - 当您想要添加更多时,您只需指定类型参数,例如对于像ConvertAll
这样的通用方法。
答案 1 :(得分:4)
不应该更像:
public abstract class EventHandlerBase<TDetail> : EventHandlerBase
where TDetail : Contracts.DeliveryItemEventDetail
{
public EventHandlerBase(AbstractRepository data, ILoggingManager loggingManager)
: base(data, loggingManager)
{
// Initialize generic class
}
}