我想创建一个基类,它有一些默认方法。该基类应使用通用接口。
这可能吗? (因为下面的代码示例没有编译,问题出在T1,T2,T3 - >第一行)
public abstract class ServiceBase<T> where T: IService<T1,T2,T3>
{
public abstract IEnumerable<T3> Search(T1 query);
public abstract T3 Add(T2 input);
public bool Monitor()
{
return true;
}
}
我想使用的原因是,对于服务,我可以输入:
public class WhatEverService : ServiceBase<IWhatEverService>
IWhatEverService继承自IService&lt; T1,T2,T3&gt; (T1,T2,T3有些不同类型)
供参考:
public interface IWhatEverService: IService<WhatEverType1, WhatEverType2, WhatEverType3>
答案 0 :(得分:2)
你没有告诉编译器T1,T2和T3是什么,它无法从使用中推断出这些类型。
public abstract class ServiceBase<T,T1,T2,T3> where T : IService<T1,T2,T3>