从泛型类中的Interface继承

时间:2013-08-21 20:10:57

标签: c# .net generics

我有以下课程:

public class DataInterop <T> where T : ITableAdapter
{
   private ITableAdapter tableAdapter;

   public DataInterop(T tableAdapter)
   {
      this.tableAdapter = tableAdapter;
   }
}

在ITableAdapter-Interface中定义的方法如Read(),Write(...),Update(...),Delete(...),...

现在我希望Class DataInterop拥有ITableAdapter接口的所有方法。

泛型类是否可以从接口继承?

3 个答案:

答案 0 :(得分:3)

您只需在: ITableAdaper

之后添加DataInterop<T>即可
public class DataInterop<T>: ITableAdapter where T: ITableAdapter
{
    private ITableAdapter tableAdapter;

    public DataInterop(T tableAdapter)
    {
        this.tableAdapter = tableAdapter;
    }
}

(看起来您正在实施Adapter PatternDecorator Pattern。)

答案 1 :(得分:2)

是的,这是可能的,当你在不知道运行时的具体类型的情况下处理类的实例时,它尤其有用。

语法为:

public class DataInterop <T> : ITableAdapter where T : ITableAdapter 

答案 2 :(得分:1)

你可以。样本布局 -

public interface IBar
{ 
    string Name { get; set; }
}
public class Foo<T> : IBar
{
    public string Name { get; set; }
}