According to this answer it's up to me whether I declare an ASP.NET application event handler in Global.asax.cs like this (no parameters)
protected void Application_Error()
or like this (two parameters)
protected void Application_Error(object sender, EventArgs e)
so basically it boils down to whether I'm interested in those parameters. So far I see that e is a reference to EventArgs (not some descendant) and contains absolutely no data and sender is always a reference to ASP.global_asax type object that contains a reference to the class containing the handler (same as this) and a reference to an instance of System.Web.Profile.DefaultProfile type.
Other handlers also don't seem to ever have useful parameters passed to them. For example, Application_End() handler is always passed a reference to System.Web.HttpApplicationFactory and a reference to EventArgs.
So far I feel like I should just convert each of my Application_?(object sender, EventArgs e) handlers into just Application_?() form.
Is there ever a situation when those handler have useful (at least for debugging) parameters passed?