web-dev-qa-db-ja.com

C#の命名規則は何ですか?

これに関するいくつかの質問がありますが、それらはすべて言語の特定の部分をターゲットにしているようです。

XBOX Live Arcade用のゲームを作成するベンチャーの友人とC#で始めたばかりです。 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_

それぞれの背後にある推論を含む命名規則の完全なリストはありますか?構文の反転(つまり、AS3のpublic Type method()の代わりにpublic function method():Type)は、私が物事の命名方法に注意を払う必要があることを知っている瞬間に私を十分に投げ出しています悪い習慣を忘れてしまいますが、今はそれを止めて避けたいと思います。

41
Marty

Microsoftの All-In-One Code Framework Coding Standards があり、ルールとガイドラインの完全なセットが含まれています。 (また利用可能 ここ

このドキュメントでは、Microsoft All-In-One Code Frameworkプロジェクトチームが使用するネイティブC++および.NET(C#およびVB.NET)プログラミングのコーディングスタイルガイドラインについて説明します。

20
Nasreddine

2つの主要な大文字表記はcamelCaseとPascalCaseと呼ばれます。

基本的なルール(多くのバリエーションがある)は

  • タイプはPascalCaseを使用します
  • プロパティとメソッドは常にPascalCaseを使用します
  • パブリックメンバー(フィールド、定数)はPascalCaseを使用します
  • ローカル変数はcamelCaseを使用します
  • パラメータはcamelCaseを使用します

ドキュメント には「内部およびプライベートフィールドはガイドラインの対象外」と記載されていますが、明確な規則がいくつかあります。

  • プライベートフィールドはcamelCaseを使用します
  • プロパティの接頭辞_を裏付けるプライベートフィールド
54
Henk Holterman

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

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

パラメーターとローカル変数には、camelCaseを使用します。

プライベートフィールドの場合は、いずれかを選択します。一部はcamelCaseを使用し、他のプレフィックスは_を含む_camelCaseを使用します。

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

7
Falanwe

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#規則に準拠する方法を教えてくれます。

追加:

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

4
danludwig