Решительное предложение Page_Load = PageLoad - PullRequest
14 голосов
/ 10 сентября 2010

Обычно, когда обработчик событий 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)
{
    // ...
}

Но Решарпер предлагает 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);
    // ...
}

но я помню, что OnLoad и PageLoad не совсем одинаковы?

Ответы [ 3 ]

44 голосов
/ 16 февраля 2011

Просто для полноты я подумал, что добавлю сюда ответ, который вы получили от одного "Дэвида Бенсона" , когда вы спрашивали на jetbrains.net :

Если вы перейдете в Параметры ReSharper, в разделе Языки выберите C # Naming Style. Нажмите кнопку Advanced settings ... и в Event subscriptions on fields: удалите On перед $event$, чтобы оно равнялось $object$_$event$. Это должно удалить предупреждение.

Для меня это самый простой способ успокоить ReSharper перед лицом существующей кодовой базы веб-приложения.

8 голосов
/ 10 сентября 2010

OnLoad и Page_Load являются по существу одинаковыми. Page_Load вызывается через отражение, если AutoEventWireup включен на Page. OnLoad - это защищенный виртуальный метод класса Control (который наследует класс Page).

См. Внутри AutoEventWireup для углубленного анализа того, как работает AutoEventWireup и почему он существует.

Сообщество StackOverflow также имеет некоторый вход на , это лучше для обработки события Load или переопределения метода OnLoad.

0 голосов
/ 10 октября 2011

Это ошибка в ReSharper 6.0 и ниже. В 6.1 это исправлено. Для обработчиков AutoEventWireup не будет предлагаться никаких изменений независимо от того, какие у вас настройки именования.

...