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

Mar*_*rty 41 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)在我知道我需要关注我如何命名事物的那一刻就让我失去了,否则我会忘记并养成坏习惯,我宁愿指甲,现在避免.

Hen*_*man 55

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

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

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

虽然文档指出"内部和私人领域不受指南涵盖",但有一些明确的约定:

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

  • _在Microsoft的命名约定中禁止使用_. (4认同)
  • @Trisped然而MS仍然在他们自己的[代码示例](https://msdn.microsoft.com/en-us/library/ms243176.aspx)中使用它们. (2认同)

Nas*_*ine 20

还有就是多功能一站式示例代码库编码标准从微软包含一套完整的规则和准则.(也可在这里获得)

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


Fal*_*nwe 7

微软为.Net编程提倡了很多命名约定.你可以在这里阅读这些内容.

根据经验,使用PascalCase作为公共属性,方法和类型名称.

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

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

常见的约定也是用ALLCAPS命名常量.