从泛型类中的接口继承

本文关键字:接口 继承 泛型类 | 更新日期: 2023-09-27 18:28:42

我有以下类:

public class DataInterop <T> where T : ITableAdapter
{
   private ITableAdapter tableAdapter;
   public DataInterop(T tableAdapter)
   {
      this.tableAdapter = tableAdapter;
   }
}

ITableAdapter接口中定义了一些方法,如Read()、Write(…)、Update(…),Delete(…)…

现在,我希望类DataInterop具有ITableAdapter接口中的所有方法。

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

从泛型类中的接口继承

您只需要在DataInterop<T> 之后添加: ITableAdaper

public class DataInterop<T>: ITableAdapter where T: ITableAdapter
{
    private ITableAdapter tableAdapter;
    public DataInterop(T tableAdapter)
    {
        this.tableAdapter = tableAdapter;
    }
}

(看起来像是在实现Adapter PatternDecorator Pattern。)

是的,当您在运行时处理类的实例而不知道具体类型时,这是可能的,尤其有用。

语法为:

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

当然可以。样品布局-

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