C#中的命名约定是什么?

时间:2011-12-13 22:27:32

标签: c# naming-conventions

  

对此有一些问题,但它们似乎都针对该语言的特定部分;

     

我刚开始用C#和一位朋友一起创建XBOX Live Arcade游戏。我使用ActionScript 2和3开发了许多游戏,但我们想开始探索更强大的语言和设备。

我想确保我不会为那些我开始合作的人(如果我达到这个目标)而烦恼,或者甚至只是当我遇到麻烦并且问一个严重令人不安/“错误”命名的问题时方法等。

我发现在我见过的示例代码中令人困惑,因为从我目前的观点来看似乎存在一些缺陷。我怀疑是否会使用有缺陷的命名约定,所以我意识到我只是在理解它。

据我所知,到目前为止,有以下约定:

  • public Type SomeMethod()
  • private Type SomeMethod() - 没有下划线或任何东西?
  • public static Type SomeMethod()
  • private static Type _SomeMethod() - 这个看起来很奇怪..
  • public Type someProperty - 将其切换为属性的驼峰套管?
  • public static Type SomeProperty - 然后回到pascal外壳静电..

在ActionScript 3中,我已经开发并严格遵守这些约定:

  • private var _someVar
  • public var someVar
  • private function _someMethod()
  • public function someMethod()
  • public static var SomeStaticVar
  • public static function SomeStaticMethod()
  • public const SOME_CONSTANT

是否有完整的命名约定列表,并在每个命名约定背后都有推理,以便我能够理解它们?语法的反转(即public Type method()而不是AS3的public function method():Type)让我完全放弃了,因为我知道我需要密切注意我是如何命名的,否则我会忘记并养成了坏习惯,我现在宁愿指甲避免。

4 个答案:

答案 0 :(得分:52)

两个主要的大写字母称为camelCase和PascalCase。

基本规则(有很多变化)是

  • 类型使用PascalCase
  • 属性和方法始终使用PascalCase
  • 公共成员(字段,consts)使用PascalCase
  • 局部变量使用camelCase
  • 参数使用camelCase

虽然the documentation表示"内部和私人字段未被指南涵盖"有一些明确的约定:

  • 私人字段使用camelCase
  • 支持属性前缀_
  • 的私有字段

答案 1 :(得分:20)

Microsoft提供的All-In-One Code Framework Coding Standards包含一整套规则和指南。 (也可用here

  

本文档描述了Microsoft All-In-One Code Framework项目团队使用的本机C ++和.NET(C#和VB.NET)编程的编码样式指南。

答案 2 :(得分:7)

微软为.Net编程提倡了很多命名约定。您可以阅读这些here

根据经验,请将PascalCase用于公共属性,方法和类型名称。

对于参数和局部变量,请使用camelCase。

对于私有字段,请选择一个:一些使用camelCase,其他前缀_camelCase使用_。

常见的惯例也是用ALLCAPS命名常量。

答案 3 :(得分:4)

C#更喜欢PascalCasing的类,属性和方法。

据我所知,到目前为止,有以下约定:

  • public Type SomeMethod()< - yes
  • private Type SomeMethod()< - 正确,无下划线
  • public static Type SomeMethod()< - correct
  • private static Type _SomeMethod()< - 这对我来说也很奇怪。下划线不应该在那里
  • public Type someProperty< - 不,公共财产应为PascalCased(SomeProperty)
  • public static Type SomeProperty - 然后回到pascal外壳静电..

如果您使用的是Visual Studio或XNA Game Studio(我认为它是Visual Studio的一个分支),我强烈建议您使用ReSharper许可证(来自jetbrains软件)。他们会在您的代码编辑器中告诉您如何符合常见的C#约定。

<强>增加:

您应该将camelCasing用于私有字段和方法参数。对于私有字段,我通常在它们之前添加_withAnUnderscore。