具有通用接口的通用基类

时间:2015-01-23 17:06:19

标签: c# generics interface base

我想创建一个基类,它有一些默认方法。该基类应使用通用接口。

这可能吗? (因为下面的代码示例没有编译,问题出在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>

1 个答案:

答案 0 :(得分:2)

你没有告诉编译器T1,T2和T3是什么,它无法从使用中推断出这些类型。

public abstract class ServiceBase<T,T1,T2,T3> where T : IService<T1,T2,T3>