我可以安全地从网页事件处理程序中删除未使用的参数吗?为什么 Page_Load 中的参数不是未使用的?

Can I safely remove unused parameters from Web page event handlers and why are parameters in Page_Load not unused?

为了成为一名整洁的程序员,我尝试修复构建警告。但是我对页面事件处理程序中未使用参数的警告感到困惑。示例:

public partial class MyPage : System.Web.UI.Page
{
    protected void Page_PreInit(object sender, EventArgs e)
    {
        some code not referencing sender or e
    }

如果我遵循 VisualStudio 的建议并删除未使用的参数 sendere,我将更改方法签名并且代码可能无法正常工作。但是,根据 this microsoft help page 事件处理程序的签名不查看参数。该页面的语言让我感到困惑,像 breaking 这样的行话,但在这种情况下,我想删除未使用的参数确实是安全的。

但是下一个事件处理程序如何,其中也没有使用参数,但 VisualStudio 不会发出相同的警告:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack && !IsCallback)
        InitPagina();
    return;
}

我的问题是:

我不是 100% 确定。但我认为,如果您删除参数,该函数可能不会再被调用。由于预期的签名已更改。

回答我自己的问题,顺序是:

  • 稍后可能需要这些参数,所以实际上并不是 "unneeded"(请参阅 Michael Gorsich 的评论)
  • breaking这样的微软行话是什么意思并不重要,如果他们谈论像"unneeded"这样有争议的事情;我建议使用新的行话,例如 unneeded build warnings
  • 两个事件处理程序的相似之处在于它们可以接收相同数量和类型的参数,这只是 VisualStudio(或 DevExpress CodeRush??)的奇怪行为
  • 未使用的参数不会产生维护和性能成本,相反,删除这些参数可能会在以后需要时产生成本,并且开发人员必须"know"可以将它们添加回
  • 我现在正在寻找如何配置 VS 以抑制所有关于未使用参数的警告