public interface IPersonRepository
{
IEnumerable<Person> GetPeople();
}
当我遇到这个方法骨架时正在学习C#的过程中。请原谅我,如果这是一个愚蠢的问题,但这种方法的返回类型是什么?换句话说,什么是IEnumerable<Person>?
C#这是一个列表或接口或完全不同的东西?
列表,接口,接口列表或其他什么东西?
public interface IPersonRepository
{
IEnumerable<Person> GetPeople();
}
当我遇到这个方法骨架时正在学习C#的过程中。请原谅我,如果这是一个愚蠢的问题,但这种方法的返回类型是什么?换句话说,什么是IEnumerable<Person>?
C#这是一个列表或接口或完全不同的东西?
列表,接口,接口列表或其他什么东西?
IEnumerable是界面,其中列表等执行 它与IList类似,但它不一样。 U知道它的一个接口,因为名称中的“I”
IPersonRepository
是一个接口。
它的内容是函数GetPeople()
,它返回IEnumerable<Person>
类型的对象。
IEnumerable<>
是一个通用接口,在这里用Person
类的具体实现中使用。
IEnumerable是一个通用集合,它具有Person类型。所以你的方法GetPeople()返回一个Person对象列表。 IPersonRepository是一个接口,所以任何实现类都有一个方法GetPeople()。
使用列表示例,它实现IEnumerable:
class PersonRepository : IPersonRepository{
public IEnumerable<Person> GetPeople() {
var people = new List<Person>();
people = // Wherever you get them from.
return people;
}
谢谢,这非常有帮助。不过,我仍然对一件事感到困惑。你说“你的方法GetPeople()返回一个Person对象列表。”但是,您可以得出结论:IEnumerable
是的,它可以是堆栈,队列或链接列表。字典不匹配,因为它实现IEnumerable
严格地说,GetPeople()返回实现Person类型的IEnumerable接口的任何内容。我看到你在学习,所以我建议你看看如何在自己的类中实现IEnumerable,然后看看它如何与通用IEnumerable一起工作。网上有很多教程,它通常覆盖在C#的书籍中。 –
是否有过宣称的IEnumerable,而不是列出优势? –
reincarnationofstackexchange