Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Resharper suggestion Page_Load = PageLoad

Usually when the Page_Load event handler is added to a codebehind file by Visual Studio (e.g. double clicking the page in designer mode), it ends up looking like this:

/// <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)
{
    // ...
}

But Resharper suggests Name 'Page_Load' does not match rule 'Methods, properties and events'. Suggested name is 'PageLoad'. I'm guessing there's a better way to define the handler for page load, but I can't remember what the syntax is, but I imagine it would resolve this Resharper warning?

Perhaps something like:

/// <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);
    // ...
}

but I seem to recall that OnLoad and PageLoad aren't exactly the same?

like image 655
Andrew Johns Avatar asked Sep 10 '10 13:09

Andrew Johns


2 Answers

Just for completeness I thought I would add here the answer you got from one "David Benson" when you asked on jetbrains.net:

If you go to ReSharper Options, under Languages select C# Naming Style. Select the Advanced settings... button and in the Event subscriptions on fields:, remove the On in front of $event$ so it is $object$_$event$. That should remove the warning.

For me this is the easiest way of placating ReSharper in the face of a large existing web application codebase.

like image 195
AakashM Avatar answered Nov 12 '22 21:11

AakashM


OnLoad and Page_Load are essentially the same. Page_Load is invoked via reflection if AutoEventWireup is enabled on the Page. OnLoad is a protected virtual method of the Control class (which the Page class inherits).

See Inside AutoEventWireup for an in-depth analysis of how AutoEventWireup works and why it exists.

The StackOverflow community also has some input on whether it is better to handle the Load event or override the OnLoad method.

like image 35
Chris Shouts Avatar answered Nov 12 '22 22:11

Chris Shouts