web-dev-qa-db-ja.com

C#でのGUIオブジェクトイベントハンドラーの命名基準の業界標準は何ですか

クリックイベント(c#/。Net)のあるフォームにボタンオブジェクトがあるとします。イベントハンドラーは通常、業界全体でどのように命名されていますか?

  • fooButton_Click
  • fooButtonClick

(またはハンガリー語が好きな場合)

  • btnFoo_Click
  • btnFooClick

Visual Studioがイベントハンドラーを作成すると、デフォルトでアンダースコア+ EventNameになります。これは、単語をアンダースコアで区切る代わりに、camelCasingとUppderCamelCasingを使用するという規範に違反しているようです。

それを変更する理由はありますか、それともVisual Studioの機能に従うすべての人がいますか?

1
BIBD

メソッド(およびイベントハンドラー)名にアンダースコアを付けることを禁止する、十分にレビューされたコーディングガイドラインと標準を使用しています。また、メソッド名にはPascalCaseを使用しています。

イベントハンドラーに名前を付けるもう1つの方法は、時間に対応した名前を付けることです。たとえば、「Click」イベントの場合-> Click *ed*。これは、イベントがすでに発生しており、残りを処理する必要があることを示しています。この名前をより時間を認識させるために、Onプレフィックスが使用されています。最後になりましたが、名前内のイベントオブジェクトを示していますOn *CancelButton* Clicked

OnCancelButtonClickedが私の選択です。

PS:イベントハンドラーのアンダースコアは、おそらくVisual Basic(Classic)からVisualStudioに由来します。

4
Kaan

VSのデフォルトが使われているところ、ある種の異なる標準に変更されているところ、そして個々の開発者が好むところまであるところがあると思います。 「業界の規範」を見つけることを期待しないでください。コーディング標準をどの程度厳密にするかについてチームとのコンセンサスを見つけ、厳密にする場合は、コードがどのように表示されるかについて合意を見つけてください。

1
Doc Brown

答えは、MSDNの クラスライブラリ開発者向けの言語規則 にあります。

つまり、イベントは他のすべてのようにPascalCaseである必要があります。例外はパラメータと保護されたフィールドインスタンスであり、それだけです。

あなたの例に基づいて、イベントソースがFooClickの場合、名前はFooButtonClickまたはFooButtonになります。

この仕様は、開発者にハンガリアン記法をまったく使用しないようにアドバイスしています。

1
James Snell
 FooButtonClick. 

すべてのメソッド名、クラス名、およびプロパティを大文字で開始します。

ただし、どちらを選択するかは、選択と一致している必要があります。それは私が与えることができる最高のアドバイスです。

0
marko