Templates 如何从泛型类型继承泛型类型
我有一个抽象类:Templates 如何从泛型类型继承泛型类型,templates,c#-3.0,Templates,C# 3.0,我有一个抽象类: public abstract class LMManager<ENTITY, ILM_ENTITY> where ENTITY : ILM_ENTITY, IActiveRecord, ICallOnCreated, new( ) 公共抽象类LMManager,其中实体:ILM\u实体、IActiveRecord、iCalOnCreated、new() 实体是某种数据对象,ILM_实体、IActiveRecord和ICallOnCreated是数据对象实现的接
public abstract class LMManager<ENTITY, ILM_ENTITY> where ENTITY : ILM_ENTITY, IActiveRecord, ICallOnCreated, new( )
公共抽象类LMManager,其中实体:ILM\u实体、IActiveRecord、iCalOnCreated、new()
实体是某种数据对象,ILM_实体、IActiveRecord和ICallOnCreated是数据对象实现的接口
通常,我会用类似这样的类来给这个家伙分类
public class JobManager : LMManager<Job, ILMJob>
public class JobViewManager : LMManager<vwJob, ILMJobView>
public abstract class JobManagerBase : LMManager<ENTITY, ILM_ENTITY>
公共类作业管理器:LMManager
公共类作业视图管理器:LMManager
现在,我有一个例子,其中两个子类有一些共同的代码,所以我想在它们之间插入另一层,比如
public class JobManager : LMManager<Job, ILMJob>
public class JobViewManager : LMManager<vwJob, ILMJobView>
public abstract class JobManagerBase : LMManager<ENTITY, ILM_ENTITY>
公共抽象类JobManagerBase:LMManager
然后把另外两个人换成
public class JobManager : JobManagerBase<Job, ILMJob>
public class JobViewManager : JobManagerBase<vwJob, ILMJobView>
公共类JobManager:JobManagerBase
公共类JobViewManager:JobManagerBase
在JobManagerBase的定义中,我得到了与实体相关的四个错误:
我缺少的是非常明显的吗?您的
JobManagerBase
尝试将LMManager
与ENTITY
和ILM\u ENTITY
参数一起使用
由于这些参数不满足您的约束,因此会出现错误。(如果有人创建了一个作业管理器数据库
?)
您需要将通用参数和相同的where
子句添加到JobManagerBase
中,以确保其参数满足LMManager
不使用所有CAP所需的约束。此外,通用参数应该以T
开头。您的意思是JobManagerBase:LMManager
?