14

通常,当Page_LoadVisual 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)
{
    // ...
}

但 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不完全相同?

4

3 回答 3

44

为了完整起见,我想我会在这里添加您在 jetbrains.net 上提问时从一位“大卫·本森”那里得到的答案:

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

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

于 2011-02-16T12:14:10.760 回答
7

OnLoad并且本质上是一样的Page_Load Page_Load如果在Page. OnLoad 是类的受保护虚拟方法ControlPage类继承)。

有关 AutoEventWireup的工作原理及其存在原因的深入分析,请参阅Inside AutoEventWireup 。

StackOverflow 社区也有一些关于处理事件或重写方法是否更好意见 LoadOnLoad

于 2010-09-10T13:20:02.373 回答
0

这是 ReSharper 6.0 及更低版本中的错误。在 6.1 中已修复。对于 AutoEventWireup 处理程序,无论您拥有哪种命名设置,它都不会建议任何更改。

于 2011-10-10T18:58:48.737 回答