2011-12-13 6 views
31

これについてはいくつか質問がありますが、すべてが言語の特定の部分を対象としていたようです。C#の命名規則は何ですか?

私はXBOX LIVEアーケード用ゲームを作成するために、ベンチャーの友人とC#で出始めています。私はActionScript 2と3を使用していくつかのゲームを開発しましたが、より強力な言語やデバイスを探索したいと考えています。

私は、(私がそれを知っていれば)働いている人たちや、ちょうど私が困っているときや、真剣に戸惑う/ "間違った"メソッドなどが含まれています。

現在の視点からいくつかの欠陥があると思われるため、私が見たサンプルコードでは混乱しています。私は欠陥のある命名規則が使用されるのではないかと疑うので、私はちょうど理解に困っていることに気付いています。 - ノーアンダースコアか何か

  • public Type SomeMethod()
  • private Type SomeMethod()

    は、私の知る限り、これまで伝えることができるよう、これらの規則がありますか?

  • public static Type SomeMethod()
  • private static Type _SomeMethod() - この1つはちょうど..
  • public Type someProperty奇妙に思える - プロパティのキャメルケースにそれを切り替えますか?
  • public static Type SomeProperty - その後、静的のために戻っパスカルケーシングへの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

私はそれらのまわりで私の頭を得ることができるように、それぞれの背後にある理由と命名規則の完全なリストはありますか?文法の逆転(すなわちAS3のpublic function method():Typeの代わりにpublic Type method())は、私が物事をどのように命名しているかを見守る必要があることを知っている瞬間に私を捨ててしまいます。そうでなければ、忘れてしまい、 dはむしろ釘付けになり、今は避けてください。

+0

私は1つの慣習があるとは思わない - 私はさまざまなコーダーによって使用されるあらゆる種類の異なるスタイルを見る傾向がある。最も重要なことは、コード全体で一貫していることです。大会を選び、それに固執する。 –

+0

いくつかのマイクロソフトのガイドライン:http://msdn.microsoft.com/en-us/library/ms229045.aspxと役立つチートシート:http://csharpguidelines.codeplex.com – Otiel

答えて

19

MicrosoftのAll-In-One Code Framework Coding Standardsには、完全なルールとガイドラインが含まれています。 (も利用可能here

このドキュメントは、マイクロソフトオールインワンコードのフレームワークプロジェクトチームによって使用されるプログラミングネイティブC++および.NET(C#とVB.NET)のためのコーディングスタイルのガイドラインについて説明します。

+21

Non-Scribdダウンロードリンク:http://1code.codeplex.com/downloads/get/357518?releaseId=84683 – larspars

+0

scribdのお支払いが必要 – rolls

+1

@rolls scribd **または** codeplexでドキュメントを無料でご覧いただけます。ダウンロードする場合は、codeplexリンクを使用してください。 – Nasreddine

7

.NetプログラミングのためにMicrosoftによって提唱された多くの命名規則があります。これらについてはhereを読むことができます。

経験則として、パブリックプロパティ、メソッド、およびタイプ名にPascalCaseを使用します。

パラメータとローカル変数については、camelCaseを使用してください。

プライベートフィールドの場合は、camelCaseを使用し、その他の接頭辞_camelCaseに_を付けます。

一般的に見られる規則は、定数にALLCAPSという名前を付けることです。

+1

Cに由来する古いコーディングスタイルが残っています。これは間違いなく、標準の.NET定数や列挙型の中では見つけられないものです。 – Palec

+0

私はC++の列挙型と定数にALLCAPSを使用していますが、ほとんどの場合、interop C++ DLL – rolls

47

2つの主要な資本化は、キャメルケースとパスカルケースと呼ばれます。

  • 種類がある(バリエーションの多い)の基本的なルールは常にPascalCaseを使用PascalCase
  • プロパティとメソッドを使用し
  • パブリックメンバ(フィールドは、constsは)
  • ローカル変数が使用PascalCaseを使用キャメルケース
  • パラメータキャメルケース

そしてthe documentationは、いくつかの明確な規則があり、「内部およびプライベートフィールドはガイドラインでカバーされていない」と述べているものの:

  • プライベートフィールドは、プロパティのプレフィックス_
をバックキャメルケース
  • プライベートフィールドを使用するには
  • +1

    @ Henkでそれらを使用しています。保護された静的フィールドについてのワット? –

    +4

    _は、Microsoftの命名規則では禁止されています。 – Yoda

    +0

    @Yoda - 何年ですか? MSは、Fx 1が出てきたときにそれに忠実であったが、後に数フィールドのバックフィールドが一般的にプレフィックスされていた。 –

    3

    C#は、クラス、プロパティ、およびメソッドのPascalCasingを優先します。

    は、私の知る限り、これまで伝えることができるよう、これらの規則があります。

    • public Type SomeMethod() < - はい
    • private Type SomeMethod() < - 正しい、ノーアンダースコア
    • public static Type SomeMethod() < - 正しい
    • private static Type _SomeMethod() < - これは私にとっても奇妙なようです。そこ
    • public Type someProperty <すべきではないアンダー - いいえ、パブリックプロパティが(SomeProperty)
    • public static Type SomePropertyをPascalCasedしなければならない - と、あなたはビジュアルを使用している場合は、静的なために戻っパスカルケースに...

    を行きますスタジオ、またはXNA Game Studio(私はVisual Studioのフォークだと思いますが)、ジェットブレーンソフトウェアのReSharperライセンスを得ることを強くお勧めします。コードエディタで、共通のC#規則に準拠させる方法について説明します。

    追加:

    あなたはプライベートフィールドやメソッドの引数にcamelCasing形式を使用する必要があります。プライベートフィールドの場合は、通常_withAnUnderscoreの前に追加します。