应该是';获取';方法名称包括参数的名称

本文关键字:参数 包括 获取 方法 | 更新日期: 2023-09-27 17:57:52

如果以前有人问过这个问题,我很抱歉,很难想象没有,但它没有明显的关键字关联,所以很难检查。

如果我有一个带有两个标准方法(如GetByCode(string code)GetByCodeAndResourceType(string code, string resourceType))的C#类,我是否应该将它们重命名为重载的Get(...),因为它们可以通过参数列表进行区分?

显然,在某些情况下,出于不同的目的可能需要相同的方法签名,但除此之外,我认为只要有intellisense的注释,就不需要单独的方法名称。

我很想知道大家的看法是什么。

应该是';获取';方法名称包括参数的名称

如果它们都做相同的事情(或返回相同的值),但接受不同的输入,那么最好通过重载参数来区分它们。如果他们的行为或回报有任何不同,那么我会使用不同的名字。

命名差异的另一个原因可能是性能,或者另一个不明显的特性(例如,一个过载比另一个慢得多)。这可以在文档中拼写出来,但提供不同的名称会引起更多的注意。

我们倾向于使用单词Find而不是Get,是的,我们在方法名称中使用参数名称。

正如您所指出的,在某些情况下,参数类型不会提供唯一的签名。这就是为什么我们选择长名称,因为它是一致的。

我认为应该理解一个方法通过其签名所做的事情。方法签名由其名称、返回类型和参数组成。因此,在名称中重复这些组件中的任何一个(例如GetByName(string name)List<string> GetNames*List*(..))都是完全多余的。