Resharper建议Page_Load = PageLoad

时间:2010-09-10 13:16:14

标签: naming-conventions resharper pageload

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

但我似乎记得OnLoadPageLoad并不完全相同?

3 个答案:

答案 0 :(得分:44)

为了完整起见,我想我会在这里添加你从一个“David Benson”获得的答案when you asked on jetbrains.net

  

如果您转到ReSharper选项,请在语言下选择C#命名样式。选择高级设置...按钮,然后在Event subscriptions on fields:中移除On前面的$event$,使其为$object$_$event$。这应该删除警告。

对我而言,面对大型现有Web应用程序代码库,这是安抚ReSharper的最简单方法。

答案 1 :(得分:8)

OnLoadPage_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处理程序,它不会建议任何更改与您拥有的命名设置无关。