35

Pascal ケーシング (上部のキャメル ケース) と下部のCamelCasingについて同僚と議論してきました。これらは、SQL データベースのテーブル名から C# コードのプロパティの命名まで、キャメル ケーシングを小文字にするために使用されますが、私は Pascal ケーシングの方が好きです。

string firstName;
public string FirstName {
...
}

しかし、彼らはこれに慣れています:

string _firstname;
public string firstName {
...
}

私は彼らの「標準」に追いつこうとしているので、コードは同じように見えますが、私はそれが好きではありません.

私は、少なくとも .NET フレームワークがこの規則を使用していることを見てきました。それが、コードを保持しようとする方法です。

System.Console.WriteLine("string")

何を使用/好みで、その理由は何ですか? 他の誰かがこの質問をした場合は申し訳ありませんが、検索しても何も見つかりませんでした。

更新: プロパティではなくメソッドの例を示しましたが、同じです。最初の段落で述べたように、同僚はすべて (変数、メソッド、テーブル名など) に Pascal 規則を使用しています。

4

14 に答える 14

39

公式の設計ガイドラインへのリンクが役立つ場合があります。具体的には、大文字と小文字のスタイルに関するセクションをお読みください。

大まかに言えば、Pascal と Camel はそれほど重要ではなく、名前の大文字と小文字を変更するためだけに既存のコード ベースに戻るように誰かを説得することはほとんどありません。本当に重要なのは、特定のコード ベース内で一貫性を保ちたいということです。

あなたがハンガリー語を使わない限り、私はただ幸せです.

于 2008-09-29T16:37:11.430 に答える
37

それが事実上のベストプラクティスであるため、私はフレームワークが使用するものを使用します。ただし、会社のコードが一貫して独自のスタイルを使用している限り、それに慣れる方がずっと良いでしょう。すべての開発者が独自の標準を持っている場合、標準はまったくありません。

于 2008-09-29T16:35:27.613 に答える
16

C# ソース コードをチェックするための Microsoft の新しいツールStyleCopをご覧ください。また、コンパイルされた .Net アセンブリをチェックするためのFxCopにも注目してください。FxCop は、レイアウトではなく、コードの動作の詳細に重点を置いていますが、公開されている名前に関連するいくつかの命名規則があります。

StyleCop はコーディング標準を定義します。これは現在、Microsoft によって業界標準として推進されています。標準に対して C# ソース コードをチェックします。StyleCop は PascalCase スタイルに準拠しています。

人々を StyleCop (またはその他の標準) に参加させるのは難しい場合があり、かなりのハードルであり、StyleCop は非常に網羅的です。しかし、コードは統一された標準に従う必要があります。個人標準は何もないよりはましであり、企業標準は個人標準よりも優れており、業界標準は何よりも優れています。

プロジェクトが開始されると、人々を説得するのははるかに簡単です。チームが形成され、変換する既存のコードがありません。また、コードが基準を満たしていない場合は、ツール (FxCop、StyleCop) を配置してビルドを中断できます。

言語とフレームワークには標準を使用する必要があります。SQL コードでは SQL 標準を使用し、C# コードでは C# 標準を使用する必要があります。

于 2008-09-29T16:56:51.650 に答える
9

パブリック インターフェイスの場合は、MS .NET フレームワークの設計ガイドラインである " Capitalization Conventions " に従う必要があります。

非公開メンバーの場合は、あなたとあなたの同僚が同意できるものは何でも。

于 2008-09-29T16:35:59.217 に答える
4

私 (および私のチーム) は、クラス名の頭文字を大文字にすることを好みます。

なんで?Java標準の伝播だと思います。

于 2008-09-29T16:33:56.463 に答える
1

.Netのコーディング標準を見つけました。

于 2011-07-27T07:30:56.660 に答える
1

.NET Framework Developer's Guide Capitalization Conventionsから、大文字と小文字の区別:

大文字と小文字のガイドラインは、識別子を読みやすく、認識しやすくするためだけに存在します。ライブラリ要素間の名前の衝突を回避する手段として、大文字と小文字を区別することはできません。

すべてのプログラミング言語で大文字と小文字が区別されるとは限りません。ではない。大文字と小文字だけで名前を区別することはできません。

于 2009-02-14T18:37:31.817 に答える
0

実際、これには「標準」の規則はありません。マイクロソフトが編集したガイドラインがどこかにあり、他の命名規則のガイドラインと同様に、それに反論する別のガイドラインがあることは確かですが、「標準の C# ケーシング規則」として私が理解するようになったものは次のとおりです。

  1. 型名 (クラス、列挙型)、定数、およびプロパティの PerWordCaps。
  2. 非常に長いローカル変数と保護/プライベート変数のキャメルケース
  3. ALL_CAPS はこれまでありません(まあ、コンパイラ定義のみで、コードではありません)
  4. 一部のシステム クラスはプライベート変数に下線付きの名前 (_name) を使用しているようですが、それらのほとんどは C++ から直接来たものであるため、これは元の作成者のバックグラウンドに由来すると思います。また、VB.NET では大文字と小文字が区別されないため、クラスを拡張すると保護された変数にアクセスできなくなることに注意してください。

実際、FxCopはこれらのルールのいくつかを強制しますが、(AFAIK) ローカル変数に使用するスペルは無視されます。

于 2008-09-29T16:40:11.860 に答える
0

Aardvark'dプロジェクトの仕様に記載されているコーディング規約が気に入っています

于 2008-09-29T16:46:27.960 に答える
0

プロパティには Pascal ケーシングを使用する必要があります。可変名に関する限り、一部の人は _ を使用し、一部の人は m_ を使用し、一部の人は単純な古いキャメル ケーシングを使用します。あなたがここで一貫している限り、それは問題ではないと思います。

于 2008-09-29T16:34:07.430 に答える
0

あなたが投稿した.NETの例は関数でした。メソッド/関数に採用されている「標準」は、キャップ付きキャメルケース (または、そう呼びたい場合は Pascal) です。

できる限りキャメルケースにこだわっています。変数とメソッドの違いを簡単に知ることができます。

さらに、私はローカル クラス変数の前にアンダースコアを付けるのが好きです。例: _localVar.

于 2008-09-29T16:34:33.637 に答える
0

個人的にはどんなに嫌いでも、コーディング標準があなたの職場について言っていることに我慢しなければならないと思います。将来的には、独自のコーディング標準を指定できるようになるかもしれません。

個人的には、データベースはテーブルとフィールドに「fish_name」、「tank_id」などの形式の名前を使用するのが好きですが、データベース モデルのコードは「fishName」と「tankID」になります。また、「fooName」が使用可能な場合に「_fooname」という名前を付けるのも嫌いです。しかし、繰り返しますが、これは主観的なものであり、以前の経験と教育により、人によって何が良くて何が悪いかについてさまざまな考えがあります.

于 2008-09-29T16:36:52.633 に答える