1

我有以下课程:

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

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

在 ITableAdapter 接口中定义了方法,如 Read()、Write(...)、Update(...)、Delete(...)、...

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

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

4

3 回答 3

3

你只需要在: ITableAdaper后面加上DataInterop<T>

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

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

(看起来你正在实现一个Adapter Pattern或一个Decorator Pattern。)

于 2013-08-21T20:17:30.747 回答
2

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

语法是:

public class DataInterop <T> : ITableAdapter where T : ITableAdapter 
于 2013-08-21T20:17:07.487 回答
1

当然可以。样本布局 -

public interface IBar
{ 
    string Name { get; set; }
}
public class Foo<T> : IBar
{
    public string Name { get; set; }
}
于 2013-08-21T20:17:19.407 回答