C#コーディングルール_#11_コントロールの名付け

当サイトではアフィリエイト広告を利用しています。

C#コーディングルール

ローカルルールのご紹介2つ目です。

今回はコントロールの名前の付け方です。コントロールというのはTextBoxとかLabelとかそういった,ユーザーインタフェース(画面)に貼り付けるものの事です。

このコントロールに対する名前の付け方も,マイクロソフトのガイドラインには存在していないので,チーム内で話し合って,ローカルルールとして定義しておく必要があります。

なぜマイクロソフトのガイドラインにないのかと言うと,おそらくは,privateな世界のお話なので,そこまで定義する必要がないという事だと思います。

コントロールの名前の付け方は,私は「項目名+コントロール名」としています。

例えば「保存ボタン」に名前を付ける場合は「SaveButton」とします。

メールアドレスを入力するテキストボックスがある場合は「MailAddressTextBox」とします。コントロールの項目名の後に純粋にコントロール名を付けます。

最初に項目名を付けることで,保存ならSaveだから「S」と打ち込むと,インテリセンスに「SaveButton」と出てくるので探しやすいですね。「ButtonSave」だと「B」と打ち込むのは少し違和感があります。今のインテリセンスは優秀なので,「S」と打ち込んでも「ButtonSave」は表示されますが,以前の.NET3.5くらいまでは「S」と打ち込むと「S」始まりの名前しか見えなかったので,探すのが大変でした。その名残もあって「SaveButton」としています。基本的に名前の付け方は「仕様上の名前」+「それがなんなのか?」の順番にするのがいいと思います。要するに「商品テーブル」なら「ProductTable」という感じです。「TableProduct」だとそもそも違和感がありますよね。だからまず「項目名」,そしてその後にそれが何なのか?を示すために「Button」とします。

コントロールがサードパーティー製で,UltraXXXXXXXButtonとかいってとてつもなく長いコントロール名の時があります。その場合も「SaveUltraXXXXXXXButton」としているのかというと,実はそこまではしていません。この辺りは趣味の世界になってくるとは思いますが,そのコントロールがボタンなのか,ラベルなのかテキストボックスなのかが分かればいいと思っています。そして,アプリケーションを作るときに,最初にボタンは「UltraXXXXXXXButton」,ラベルは「LabelEx」などと,拡張されたコントロールを決めておいて,各プログラマーに判断させないようにします。標準のLabelを張り付ける人と,拡張されたLabelExを張り付ける人がいる時点で,その行為こそが問題で,コントロールはどれを使うべきか?という事を,最初にある程度決定してから実装を始めないと,画面事にコントロールの見え方が異なるなど,不細工なアプリケーションになってしまう恐れがあります。

少し話が脱線したようにも思いますが,要するに,どんなボタンが張り付いていようと,語尾には「Button」とのみ命名する。それが私のローカルルールです。 

実装例

ボタンの命名は次のようになります。

ラベルの命名の例

テキストボックスの命名の例

これはローカルルールなので,こうしないといけないわけではありません。チームで話あって決めてください。