14

通常、Page_LoadイベントハンドラーがVisual Studioによって分離コードファイルに追加されると(たとえば、デザイナーモードでページをダブルクリックすると)、次のようになります。

/// <summary>
/// Handles the Load event of the Page control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void Page_Load(object sender, EventArgs e)
{
    // ...
}

しかし、Resharperは提案してName 'Page_Load' does not match rule 'Methods, properties and events'. Suggested name is 'PageLoad'います。ページ読み込みのハンドラーを定義するより良い方法があると思いますが、構文が何であるかを思い出せませんが、このResharper警告を解決すると思いますか?

おそらく次のようなものです:

/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.Load"/> event.
/// </summary>
/// <param name="e">The <see cref="T:System.EventArgs"/> object that contains the event data.</param>
protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    // ...
}

しかし、私はそれを思い出しているようで、まったく同じではありませんかOnLoadPageLoad

4

3 に答える 3

44

完全を期すために、jetbrains.netで質問したときに1つの「DavidBenson」から得た答えをここに追加すると思いました。

[ReSharperオプション]に移動する場合は、[言語]で[C#名前付けスタイル]を選択します。[詳細設定...]ボタンを選択し、の前にあるを削除Event subscriptions on fields:します。これで警告が削除されます。On$event$$object$_$event$

私にとって、これは、既存の大規模なWebアプリケーションコードベースに直面してReSharperを配置する最も簡単な方法です。

于 2011-02-16T12:14:10.760 に答える
7

OnLoadと本質的に同じですPage_Load Page_LoadAutoEventWireupがで有効になっている場合、リフレクションを介して呼び出されますPage。OnLoadは、クラスの保護された仮想メソッドですControl(クラスはこれをPage継承します)。

AutoEventWireupがどのように機能し、なぜ存在するのかについての詳細な分析については、InsideAutoEventWireupを参照してください。

StackOverflowコミュニティには、イベントを処理するの良いか、メソッドをオーバーライドするのが良いのかについて情報もあります。 LoadOnLoad

于 2010-09-10T13:20:02.373 に答える
0

これはReSharper6.0以下のバグです。6.1では修正されています。AutoEventWireupハンドラーの場合、どの命名設定を使用していても、変更が提案されることはありません。

于 2011-10-10T18:58:48.737 に答える