10

我试图弄清楚在 C# 中命名私有方法和私有静态方法的最聪明的方法是什么。

背景:我知道私人成员的最佳实践是下划线前缀+驼峰式。你可以和我争论,但相信我,我已经看到了足够多的遵循这个约定的核心专业人士的代码,这是熟练的行业标准。

我也知道帕斯卡案例是公共方法的行业标准。但是我已经看到了测试风格命名(即 method_must_return_false_occasionalally )与 pascal case、camelcase 和下划线前缀 + camelcase 的组合,用于私有和私有静态方法。

但是 C# 中私有和私有静态方法命名的最佳实践风格是什么?

如果某些样式是从某些私有方法而不是其他方法中使用的,我可以理解,只需解释一下。

谢谢阅读。

4

6 回答 6

17

查看 Microsoft 的命名指南和 Brad Abram 的风格指南

他们说所有方法都应该是 PascalCase

public void DoWork() {}
private void StillDoWork() {}
private static void ContinueToDoWork() {}
于 2009-04-04T17:57:07.653 回答
7

.NET 类库开发的命名准则不区分公共和私有用法,并建议静态方法使用Pascal大小写。

编辑:我个人的做法是对方法和属性使用 Pascal 大小写,对字段、参数和局部变量使用骆驼大小写。当从类中引用实例成员时,我this.在必要时用来区分类成员和参数。我不知道我是否有资格成为“铁杆专业人士”,但我确实得到了报酬。:-)

编辑2:自从最初写这篇文章以来,我已经换了工作。我们遵循的编码标准与我个人的感受不同,我们确实在私有字段前加上下划线。我也开始使用 ReSharper,我们的标准(通常)遵循默认规则。我发现我可以轻松地使用下划线。我只this在绝对需要时使用,因为它不符合我们的代码标准。一致性胜过个人偏好。

于 2009-04-04T18:00:22.373 回答
3

我不了解行业标准,但即使是私有方法也使用 Pascal 大小写,我对静态方法没有区别。

于 2009-04-04T17:59:10.737 回答
2

The weird_underscore_naming convention is typically restricted to tests because it makes them more readable, and is something that is heavily encouraged by BDD. Remember that, whereas a method describes in a short way what it does (DepositMoney), tests need to describe what it is they are doing, i.e., Negative_deposits_must_be_caught

于 2009-04-04T18:44:16.417 回答
1

一种选择是使用强制您保持一致的工具,例如style cop(如果您使用reSharper , codeplex上有一个 style cop 插件)。大多数工具似乎都强制执行(?建议)Microsoft 指南,因为这些工具可以让您通过一些测试来获得 MS 平台对您的代码的批准。

于 2009-04-04T18:19:33.810 回答
1

我工作过的每个地方的做法总是不同的。

我发现作为一名专业开发人员,专业的一部分是为了适应新团队,这些团队可能有不同的编码约定。

能够改变你的风格并应对在最初几周内造成的认知失调,是职业的一部分。

我将开始研究各种开源和类似项目,您会看到各种各样的方案。

我还看到过下划线的 camelCase 和 Pascal 案例辩论分裂了社区,有时甚至是团队——我猜这是编码方案的重点。

所以除非项目是你作为唯一的开发者,在这种情况下你是自由的——试着找出团队的其他成员喜欢使用什么,以及什么让团队更容易理解。

我要考虑的另一件事是 OO 术语中代码的复杂性,如果这是一个简单的项目或具有多种模式的复杂 OO 设计,或者您正在使用一些 IOC 然后开始在不同类型的编码标准上运行“峰值”并且然后看看当你使用它时代码的物理外观 - 对你和团队来说看起来不错,还是看起来很丑。

于 2009-04-04T18:30:20.087 回答