UnityでC#のコードを作成するとき、変数やメソッドなどの名前の付け方に迷うことが多々ある。「何が正しいか」は一意に決められないとは思うが、基本的には本家Microsoftの考える「名前の付け方ガイドライン」に従うのがいい。そうすれば、他のメンバーや、社外の人がコードを見た際にも混乱がすくなくてすむ。(作成者自身も、将来、どんな意図でコーディングしたかを忘れるものだから。)
ということで、MSDNのガイドラインから、Unity/C#開発に関係が深そうなものを抜粋した。
参考:
.NET Framework-Development Guide-Framework Design Guidelines
Naming Guidelines(英語).aspx)
(日本語の.NET Frameworkのデザインガイドライン:名前付けのガイドライン.aspx)もあるが、翻訳がおかしい箇所が多い)
大文字・小文字の使い分け
変数はCamel形式
その他はPascal形式
名前の付け方の一般論
- わかりやすさを重視
- 単語の順番は英語と同じに ×AlignmentHorizontal 〇HorizontalAlignment
- 一般的な単語を使う ×ScrollableX 〇CanScrollHorizontally ('X'が何を示しているか不明瞭)
- 省略形を使用しない ×OnBtnClk 〇OnButtonClick
- できるだけ意味を特定する ×GetInt 〇GetLength
- 英数字以外の文字は使用しない('_‘アンダースコア、’-‘ハイフンなども使用しない)
- 言語のキーワードを使用しない
名前空間
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
- Pascal記法を用い、単語を'.‘でつなぐ -ただしブランド名固有の大文字・小文字の使い方がある場合はそれを優先してよい
- Company:会社名をプレフィクスとして用いる
- Product|Technology バージョンに依存しない安定した製品名・技術名
- 名前空間と同じ名前をクラスの中で使用しない
メソッド
- Pascal表記
- 動詞または動詞句を使う
例:
public class String { public int CompareTo(...); public string[] Split(...); public string Trim(); }
プロパティ
- Pascal表記
- 名詞または形容詞を使う
- プロパティ名に'Get|Set'はつけないこと(メソッドと混乱するため)
- コレクションの場合は複数形にする(—List, —Collectionなどと書かない)
- Booleanの場合は、否定形ではなく肯定形のみ使用する ×CantSeek 〇CanSeek
- 先頭に'Is', ‘Has’, ‘Can'をつけてもよい。ただし意味がある場合のみ。
イベント
- Pascal表記
- 動詞または動詞句を使う 例:Clilcked, DroppedDown, Painting
- イベントの前後を示すのに、'Before|After'接頭句はつけない。動詞の過去形、現在形で表現する。
- イベントハンドラは、「イベント名+EventHandler」とする。
- イベントハンドラの中では、イベント送信者は'sender'、イベントは'e'で表記する
例:
public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
- イベント引数のクラスは、'—EventArgs'接尾句をつける
変数
- Camel表記
- 変数の型ではなく、変数の意味で名前をつける。
より上位の「C#コーディング規則」については次を参照のこと。 C# のコーディング規則 (C# プログラミング ガイド)