web-dev-qa-db-ja.com

イベントハンドラーの名前に関するReSharperの規則

イベントに新しいイベントハンドラーを追加すると、VSはobject_Clickのようなメソッドを作成します。ただし、ReSharperは、すべてのメソッドに「_」などのデリメータを含めるべきではないため、このメソッドを警告として強調しています。

ReSharperのルールをカスタマイズして、そのようなメソッドに下線が引かないようにするにはどうすればよいですか?または、そのようなメソッドの名前を変更する必要がありますか?

前もって感謝します。

53
Pavel Belousov

個人的には、メソッドの名前を変更することをお勧めします。一般的に、VSはコントロールとイベントの両方にひどい名前を思いついたと思います。

私はメソッド名にそれが何を呼ぶかではなく、それが何であるかを言うようにすることを好みますdoes。それは再利用も促進します。確かに、イベントハンドラーのシグネチャは、再利用には理想的ではないことがよくあります。より適切なパラメーターを使用してメソッドを呼び出すラムダ式が役立つ場合が多いと思います。

button.Click += (sender, args) => SaveCurrentDocument();

しかし、明らかにデザイナーはそれをサポートしていません:(

もちろん、すべてのメソッドの名前を変更することは、R#設定を変更するだけでなく、うまくいくものが見つかった場合は、より多くの作業になります...

31
Jon Skeet

C#(またはVB)の場合、次の変更を行います。

ReSharper |オプション|言語| C#| C#の命名スタイル、詳細設定...「フィールドのイベントサブスクリプション」を$object$_On$event$から$object$_$event$に変更します。

「タイプと名前空間」などのエンティティの種類にルールを追加して、「デフォルト」などのコード生成クラスを考慮に入れることもできます。たとえば、「」の名前プレフィックスを使用して新しいルールを追加します。と名前空間 'UpperCamelCase'。

112
David North

Visual Studio2010の拡張機能であるEventHandlerNamingを作成しました。これにより、生成されたイベントハンドラー名を簡単なパターンで指定できます。拡張機能のデフォルトパターンはOn $(SiteName)$(EventName)で、btnName_Clickの代わりにOnBtnNameClickのようなイベント名を提供します。拡張機能は http://tech.einaregilsson.com/2010/12/22/better-eventhandler-names-in-visual-studio-2010/ で入手できます。

6
Einar Egilsson

ファイルメニューに「Resharper」が表示されているはずです。クリック->オプション->命名規則(左側のメニュー)。

そこから、各命名タイプ/スタイルに使用される命名規則を指定できます。

0
Pat