Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与泛型函数的接口_C#_Generics_Interface - Fatal编程技术网

C# 与泛型函数的接口

C# 与泛型函数的接口,c#,generics,interface,C#,Generics,Interface,我有这样一个界面: public interface ITableData { List<T> ListAll<T>() where T : TableData; void Insert(Object o); } 我的类实现了接口: public class BookData:ITableData { public List<T> ListAll<T>(

我有这样一个界面:

 public interface ITableData
    {
        List<T> ListAll<T>() where T : TableData;
        void Insert(Object o);

    }
我的类实现了接口:

  public class BookData:ITableData
        {
           public List<T> ListAll<T>() where T : TableData
            {
                //some code here
            }
        }
public interface ITableData<T> where T : TableData
// Implement your methods using T
事实上,我想得到这样的结果:

public class BookData:ITableData
{
  public List<Book> ListAll()
  { List<Book> bookList =XXXXXX;
//some code here
return bookList}
}
如何做到这一点?
谢谢大家。

将泛型参数移到接口上,而不是移到方法上:

public interface ITableData<T> where T : TableData
{
    List<T> ListAll();
    void Insert(Object o);
}

public class BookData : ITableData<Book>
{
    public List<Book> ListAll()
    {
        List<Book> bookList =XXXXXX;
        //some code here
        return bookList;
    }
}

将泛型参数移到接口而不是方法上:

public interface ITableData<T> where T : TableData
{
    List<T> ListAll();
    void Insert(Object o);
}

public class BookData : ITableData<Book>
{
    public List<Book> ListAll()
    {
        List<Book> bookList =XXXXXX;
        //some code here
        return bookList;
    }
}

你的问题是因为

public List<Book>
然后可以在类中实现:

public class BookData:ITableData<Book>

你的问题是因为

public List<Book>
然后可以在类中实现:

public class BookData:ITableData<Book>

为什么要标记这个模板?呃,因为我使用了模板?它们不是C语言中的模板,它们被称为泛型。它们看起来一样,但工作方式不同。为什么要标记这些模板?呃,因为我使用了模板?它们不是C中的模板,它们被称为泛型。它们看起来一样,但工作方式不同。谢谢,如何实现List函数?就像您在示例中所做的那样。在您的界面中,您将使用类型T并返回一个列表,然后在您的代码中,您只需用一个有效的类型替换T。谢谢,以及如何实现列表函数?就像您在示例中所做的那样。在您的界面中,您将使用类型T并返回一个列表,然后在代码本身中,您只需用一个有效的类型替换T。