web-dev-qa-db-ja.com

コントロールの命名規則

MicrosoftのWebサイトには、命名ガイドラインがあります( here )。また、フレームワーク設計ガイドラインの本もあります。

私が見つけることができなかったのは、名前付けコントロールに関するガイドラインでした。

たとえば、ボタンをフォームにドロップすると、「button1」などのデフォルト名としてキャメルケースのtypename + numberが取得されます。

これが私がしていることです。番号を削除し、意味のある説明を後に追加します。たとえば、「buttonDelete」または「buttonSave」。

この方法では、コントロールの大きなリストとそれらの略称をどこかのガイドラインに保持する必要はありません。

同意しますか?

34
Patrick Peters

そのような慣習はありませんが、名前の「タイプ」の部分を非常に広くしようとしています。例えばボタン、リンクボタン、画像ボタンは「somethingButton」という名前が付けられる傾向があります。コンボボックス、ラジオボタンリストはすべて「somethingSelector」になります。 TextBoxとCalendarは「somethingInput」です。そうすることで、名前が実際の実装に結び付けられていない状態で、それがどのような制御であるかを大まかに把握できます。オプションボタングループをドロップダウンに置き換える場合、名前を変更する必要はありません!

20
Jon M

警告:以下は、 WinForm/WPF 開発。 Patrick Petersは、ASP.NETコントロールを扱う際に帯域幅/パフォーマンスの問題があることを正しく指摘しました。

ここには実際に標準はありません。これは、最も任意の命名シナリオの1つであるためだと思います。ほとんどの場合、コントロールはクラスに対してプライベートであり、イベントハンドラーでのみ軽く使用されます。

他の回答者と同様に、私もコントロール名を「修正」するのに重要な時間を費やしていました。 「btnSave」、「tbxName」(TextBoxの場合はtbx)などを実行します。しかし、自分のスキームを他の誰かに説明するとき、それがいかにarbitrary意的であるかを理解しました。 「cbx」はコンボボックスですか、それともチェックボックスですか?

これにより、デザイナーが自動的に行うことを再検討し、デザイナーに作業を任せると、明確に、一貫して、迅速にコントロールに名前を付けることができることに気付きました。実際には、質問ポスターの提案と非常によく似ています。

コントロール番号をコントロールのセマンティクスに置き換えます。したがって、「button1」(デザイナーのデフォルト)は「buttonSave」になり、「listBox3」は「listBoxWidgets」になります。そのタイプのコントロールが1つしかない場合は、単に番号を削除します:「errorProvider1」は「errorProvider」になります。

では、これはどのように改善されていますか?

  • 細心の注意を払って「固定」変数名は時間の無駄です内部変数の場合
  • あなたの命名スキームは、多くのもの(CheckBox対ComboBox)を短縮する場合、あいまいになる可能性があります。
  • デザイナーは、簡単かつ迅速に専門化できる優れた一貫した出発点を提供します
  • Intellisenseを使用する場合、変数名のの長さは無関係です
  • コントロール名は、タイプの前に付けると(Intellisenseで)わかりやすく直感的にグループ化されます。フォームに15個のTextBoxがある場合、最初にTextBoxが必要であることを覚えて、「textBox」と入力し、リストから名前を選択します。
  • あなたの「スキーム」に不慣れな人は誰でもすぐにそれを見ることができ、他の何よりも早くそれを採用できます。
  • 便利なコントロール名を提供するのは非常に高速です...これを行うための非常に小さなキーボード/マウスのジョッキー...直感的な結果をもたらす非常に高い生産性。好きではないことは何ですか?

PS。これは、自転車置き場の質問に向かう傾向がありますが、自転車置き場をペイントできるので、先に進んで議論に参加しました。 ;)

26
el2iot2

一般的なものを次に示します。

frm  Form
mnu  Form menu
cmd  Command button
chk  Check button
opt  Radio button
lbl  Text label
txt  Text edit box
pb   Picture box
pic  Picture
lst  List box
cbo  Combo box
tmr  Timer

長いリストはINFO:VBのオブジェクトハンガリー語表記の命名規則です。

23
NoahD

私はかなり長い間WinFormsをしていませんが、私がしたことは2つのことでした。

  • ラベルなどのようなものについては、「メンバーを生成する」(または呼び出される)のチェックを外します。基本的に、必要なものだけをフィールドとして保持するようにします。
  • 必要な人のために、わかりやすい名前を設定します。必要な場合、appendコントロールの名前(つまりsaveButton)。コントロール名を追加しても値が追加されない場合は、「ボタン」を追加せず、名前を「保存」のままにします。

基本的に、ほとんどの場合、保存ボタンのメンバーはまったく作成しません。 (保存ロジックがある場合は、ボタンのClickイベントにサブスクライブしているOnSavingイベントハンドラーのみを保持できます)。

https://msdn.Microsoft.com/en-us/library/ms233630(v = vs.110).aspx

4

はい、それらの名前を変更します

私のために:

  • Button btnDescription

  • TextBox txtDescription

  • ComboBox cboDescription

等...

3
user68610

GUIプログラミングは、あらゆる種類の慣習に関しては短い棒になります。命名に使用するガイドラインについては、私の 別の質問への回答 を参照してください。

2
Michael Meadows

私はおそらくハンガリー語の表記法をまだ使用している最後の数人の一人です。 IDEは変数の型を伝えることができるという引数を知っていますが、Notepad ++でコーディングしているときや、印刷物を見ているときには役に立ちません...とにかく、私は使用します「btnSave」、「cbOptions」、「txtFirstName」、「lblTitle」、「ddlCardType」など。 IDEからデータ型を取得する変数。

1
mlindegarde

はい、変数に意味のある識別子が必要です-制御するかどうか-デフォルト名は、IDEが問題のドメインについて何も知らないため、より良い名前を「推測」することができないためです。

1
Mark Pim

はい、私は完全に同意します(ただし、ButtonDeleteに名前を変更します)ので、小文字の名前は私の場合の変数の名前です。

個人的には、あなたが一貫している限り、他の誰かがあなたのコードを読んでいても問題にぶつかることはないと思います。

0
Gambrinus

よくわかりませんが、 Windows Forms のコントロールの命名は ハンガリー語表記 の使用を見ることができる唯一の場所の1つであると思います。だからあなたは良いと思う。

0
Jason Punyon

現在の考え方は、名前にコントロールの種類を含めることに眉をひそめると思います。私はそれらを私が使用している別のオブジェクトとして扱い、同じ命名規則に従いたいと思います。

言うまでもなく、意味のある名前付けを使用します:)、しかし、結局のところ、数か月後にコードを再訪したときに命名規則がまだあなたにとって意味があるなら、私はそれを固執するでしょう。

0
Lazarus