C#接口返回类型

时间:2011-10-06 13:31:01

标签: c# interface

我有几个接口,IOrganisations和IPeople。

如果我想返回与组织关联的人员列表,我在哪个界面创建?

结果基于组织,但我正在返回人员列表

5 个答案:

答案 0 :(得分:6)

IOrganisation上执行此操作(并将IPeople作为返回类型)。

这样的事情:

interface IOrganisation {
    IList<IPeople> GetPeople();
}

这是因为组织的人员是组织的财产,而不是人民的财产。

答案 1 :(得分:6)

这听起来应该在IOrganization上 - 毕竟这就是你所说的。您拥有的是组织,您想要人员列表 - 您不能从人员列表中启动,因此 >必须成为IOrganization界面的一部分。

我觉得开始使用复数接口名称很奇怪 - 我希望单个组织可以IOrganization,而单个人可以IPerson

public interface IOrganization {
    IList<IPerson> GetPeople();
}

答案 2 :(得分:1)

首先,您的应该可能没有多元化的接口名称。所以称他们为IOrganization和IPerson然后在你的IOrganisation接口上你可能有一个叫做的方法:

IEnumerable<IPerson> GetPeople()

答案 3 :(得分:0)

哪个属于哪个?

在我看来,iOrganisation.People将是属于该组织的人员列表(是您的“IPeople”界面,代表一个人或一个人的列表?)。同样,您可能会IPeople.Organisations列出一个人所属的所有组织。两者都可能有不同的底层机制 - 可能调用相同的查找表 - 对调用代码的人来说无关紧要。

答案 4 :(得分:0)

如果您将某个组织视为包含人员的集合,那么将其放在IOrganization中是很直观的。它看起来像这样:

interface IOrganization
{
  IList<IPeople> Members { get; }
}