2011-12-13 195 views
31

在这方面有几个问题,但他们似乎都是针对该语言的特定部分;C#中的命名约定是什么?

我刚开始在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)在我知道需要密切关注我如何命名事物的时刻已经足够让我失望了,否则我会忘记并养成不良习惯, d宁可钉和现在避免。

+0

我不认为有一个单一的约定 - 我倾向于看到各种不同的编码器使用的不同风格。我认为最重要的是在你的代码中保持一致。选择一个约定并坚持下去。 – 2011-12-13 22:31:00

+0

一些微软指南:http://msdn.microsoft.com/en-us/library/ms229045.aspx和我发现有用的一些备忘单:http://csharpguidelines.codeplex.com – Otiel 2011-12-13 22:37:04

回答

7

微软为.NET编程提出了很多命名约定。你可以阅读关于这些here。根据经验,使用PascalCase作为公共属性,方法和类型名称。

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

对于私人领域,选择一个:一些使用camelCase,其他前缀_camelCase与_。

一个常见的约定也是用ALLCAPS命名常量。

+1

我猜全帽大会是源于C的旧编码风格的遗留物。这绝对是您在标准.NET常量或枚举中找不到的东西。 – Palec 2015-10-21 18:33:37

+0

我使用ALLCAPS作为C#中的枚举和常量,但大部分时间我都在使用interop C++ DLL – rolls 2016-10-21 12:40:05

47

这两个主要的资本被称为camelCase和PascalCase。

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

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

虽然the documentation指出,“内部和私人领域不受指引涵盖”也有一些明确的约定:

  • 私有字段使用驼峰
  • 私有字段回属性前缀_
3

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

据我目前可以告诉,有这些约定:

  • public Type SomeMethod() < - 是
  • private Type SomeMethod() < - 正确,没有下划线
  • public static Type SomeMethod() < - 正确
  • private static Type _SomeMethod() < - 这对我来说也很奇怪。强调不应该有
  • public Type someProperty < - 不,是公共财产,应PascalCased(SomeProperty)
  • public static Type SomeProperty - 然后回到静态Pascal大小写..

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

增加:

您应该使用私有字段和方法的参数驼峰规则。对于私人领域,我通常会预先安排他们_withAnUnderscore。

相关问题