3

我正在为一个模块创建一个 API,在我的类中创建了几个方法之后,我问了自己这个问题。

现在,作为一个例子,我正在这样做:

public Company GetMonitoredCompany( String companyName ) { ... }
public List<Company> GetMonitoredCompanies( ) { ... }

但我意识到,有好几次我使用其他 API/服务,有时他们的名称中有Collection,可能像:

public List<Company> GetMonitoredCompanyCollection( ) { ... }

有这个规则吗?一种模式?或者任何一种方式都可以?

4

6 回答 6

10

使用最短、最简单的名称,清楚地表明方法的目的。并在您的项目中保持一致。

在这个例子中,如果没有其他考虑,我会使用这个名字:

获取监控公司

因为它更短更清晰。

(我也会返回一个只读的 ICollection 或 IEnumerable ,除非你有特定的理由不这样做。)

于 2008-12-28T22:21:54.117 回答
1

由你决定。但我建议您对整个项目采用相同的约定......我更喜欢第一种方式(GetMonitoredCompanies)

于 2008-12-28T22:21:47.597 回答
1

如果它可能返回多个值(集合、数组等),请使用复数 (GetMonitoredCompanies),否则使用单数。不要在名称中包含返回的数据类型。这只是在寻找您更改返回数据类型并忘记重命名方法的麻烦,从而造成疯狂的混乱。

于 2008-12-28T22:37:11.650 回答
1

当仅使用复数来区分集合时,我发现它非常令人困惑。我通常在返回集合时使用 List 而不是 Get,所以示例是

ListMonitoredCompanies

这使得使用智能感知变得非常容易,因为添加、更新、删除、列出和获取函数都有自己的起始字母。

于 2008-12-28T23:14:05.120 回答
0

永远不要做收藏的事情——除非你觉得它增加了重要的意义。现代工具能够轻松一目了然地告诉您期望的返回类型。更改返回类型时会发生什么?您要么留下错误的函数名称,要么必须在整个代码中更改它(尽管您可能无论如何都需要这样做,但如果您是子类等,您可能不需要这样做)。

出于同样的原因,匈牙利符号(有争议地)在高级语言中不再特别有用。

在所有情况下,在您的代码中保持一致。

哦,别傻了。我有一个同事(我认为是在烦恼的时刻)按照FunctionThatLoadsTheTotalFromFileNumberCount调用他的函数,试图传达函数返回类型(Number),意思是(Count),它是一个函数(Function)以及它是什么确实做到了,相当冗长。

于 2008-12-28T22:27:23.060 回答
0

对于这种情况,我将复制 .NET Framework 命名。例如Directory.GetFilesType.GetMembers并使用复数形式。除非这样做会使代码不清楚,显然。

于 2008-12-28T22:29:17.813 回答