C#の命名規約とガイドライン

 

C#の変数や型(クラス、構造体、インターフェース、列挙型など)、メンバー(フィールド、メソッド、イベントなど)、名前空間といったものにプログラマが名前を付けて管理します。このように、名前を割り当てたものを識別子と呼びますが、名前の付け方にはルールがあります。 


命名規約

識別子は以下の規則に従って命名する必要があります。

  • 使える文字はアルファベット・アンダースコア「_」・数値(かなや漢字も可)
  • 名前の先頭を数値にする事はできない
  • C#のキーワードとして予約された単語は使用できない

※アルファベットの大文字・小文字は区別されます(abc と Abc は別々の物)

 

参考:https://learn.microsoft.com/ja-jp/dotnet/csharp/fundamentals/coding-style/identifier-names


命名ガイドライン

命名規約に従って名前をつければプログラム的には問題ありません。

しかし、好き勝手に適藤な名前を付けると大変分かりづらいソースコードとなってしまいます。

また、チームで開発する場合など、書いた人によって名前の付け方が違うと混乱しバグの原因となることも多いでしょう。

 

.NET APIは一定のガイドラインに沿って名前付けがされているため、このガイドラインに従ってコードを書くことをお勧めします。

表記方法

名前付けに使用する単語の表記方法には、大きくわけて2つの方法があります。

表記方法

概要
Pascal形式  各単語の最初の文字を大文字にしそれ以外は小文字
IDのような2文字の省略形は全て大文字
XMLのような3文字以上の省略形は先頭だけ大文字 

BackColor

DBRate

XmlWriter

camel形式

先頭の単語は全て小文字

それ以外はPascal形式と同じ

先頭がIDやXMLのような省略形であっても小文字

backColor

dbRate

xmlWriter

プリフィックス

プリフィックスは、先頭に特定の意味を持たせた単語を付けるというものです。

たとえば、インターフェースの名前には必ず先頭に「I」を付けるというようなルールを持たことがあります。

識別子の種類による表記方法の使い分け

.NET APIでは識別子の種類によって以下のようなガイドラインが定められています。

識別子の種類

表記方法 概要
名前空間 Pascal形式

[企業名].[製品名].[特徴]のように構成要素をピリオド . で区切る

 例)Microsoft.WindowsMobile.DirectX

 

クラス Pascal形式

 

名詞、名詞句、場合によって形容詞句

プリフィックスは使用しない

 

構造体 Pascal形式

名詞、名詞句、場合によって形容詞句

プリフィックスは使用しない

インターフェース Pascal形式

名詞、名詞句、場合によって形容詞句

プリフィックスに I を使用

列挙型 Pascal形式

値がビット フィールドでない限り単数の型名を使用

値としてビット フィールドを持つ場合には複数形の型名を使用

プリフィックスは使用しない

列挙値 Pascal形式 プリフィックスは使用しない
メソッド Pascal形式

動詞、動詞句

プリフィックスは使用しない

フィールド Pascal形式

名詞、名詞句

プリフィックスは使用しない

プロパティ Pascal形式

名詞、名詞句、形容詞

"List" や "Collection" が続く単数形の語句ではなく複数形の語句を使用

 

ブール値は肯定の語句 (CantSeek ではなく CanSeek) を使用
ブール値は "Is"、"Can"、または "Has" のプレフィックスを使用することも可

イベント Pascal形式

動詞、動詞句

現在形や過去形を使って、イベント名に前と後の概念を指定

 例)ウィンドウを閉じる前に発生するイベントは Closing 、閉じた後は Closed

イベント ハンドラーに "EventHandler" サフィックスを使って名前

 

 例)public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

パラメータ camel形式

名前と型を見ただけで使用方法が判断できるような名前