我有一个抽象类:
public abstract class LMManager<ENTITY, ILM_ENTITY> where ENTITY : ILM_ENTITY, IActiveRecord, ICallOnCreated, new( )
ENTITY是某种DataObject,ILM_ENTITY,IActiveRecord和ICallOnCreated是DataObject实现的接口。
通常情况下,我使用类似
的类对这个人进行子类化public class JobManager : LMManager<Job, ILMJob>
public class JobViewManager : LMManager<vwJob, ILMJobView>
现在,我有一个案例,其中两个子类有一些共同的代码,所以我想在它们之间插入另一个层,比如
public abstract class JobManagerBase : LMManager<ENTITY, ILM_ENTITY>
然后将其他两个人改为
public class JobManager : JobManagerBase<Job, ILMJob>
public class JobViewManager : JobManagerBase<vwJob, ILMJobView>
在我的JobManagerBase的定义中,我得到了与ENTITY相关的四个错误:
我错过了什么非常明显?
答案 0 :(得分:0)
您的JobManagerBase
尝试将LMManager
与参数ENTITY
和ILM_ENTITY
一起使用。
由于这些参数不符合您的约束,因此会出现错误。 (如果有人制作JobManagerBase<int, string>
会怎么样?)
您需要将通用参数和相同的where
子句添加到JobManagerBase
,以确保其参数符合LMManager
所需的约束。