2011-12-13 130 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。

相關問題