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。