我想创建一个基类,它有几个默认方法。此基类应使用泛型接口。
这可能吗?(因为下面的代码示例无法编译,问题出在 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>
从 IService<T1、T2、T>3 继承 IWhatEverService(使用 T1、T2、T3 一些不同的类型)
仅供参考:
public interface IWhatEverService: IService<WhatEverType1, WhatEverType2, WhatEverType3>
您尚未告诉编译器 T1、T2 和 T3 是什么,并且无法从使用情况中推断出这些类型。
public abstract class ServiceBase<T,T1,T2,T3> where T : IService<T1,T2,T3>