通常当Visual Studio将Page_Load
事件处理程序添加到代码隐藏文件时(例如,在设计器模式下双击页面),它最终看起来像这样:
/// <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);
// ...
}
但我似乎记得OnLoad
和PageLoad
并不完全相同?
答案 0 :(得分:44)
为了完整起见,我想我会在这里添加你从一个“David Benson”获得的答案when you asked on jetbrains.net:
如果您转到ReSharper选项,请在语言下选择C#命名样式。选择高级设置...按钮,然后在
Event subscriptions on fields:
中移除On
前面的$event$
,使其为$object$_$event$
。这应该删除警告。
对我而言,面对大型现有Web应用程序代码库,这是安抚ReSharper的最简单方法。
答案 1 :(得分:8)
OnLoad
和Page_Load
基本相同。如果Page_Load
上启用了AutoEventWireup,则会通过反射调用Page
。 OnLoad是Control
类的受保护虚拟方法(Page
类继承)。
请参阅Inside AutoEventWireup,深入分析AutoEventWireup的工作原理及其存在的原因。
StackOverflow社区还有一些input on whether it is better来处理Load
事件或覆盖OnLoad
方法。
答案 2 :(得分:0)
这是ReSharper 6.0及更低版本中的一个错误。在6.1它是固定的。 对于AutoEventWireup处理程序,它不会建议任何更改与您拥有的命名设置无关。