我从 FxCop 收到此警告:



好的,我明白这意味着什么以及为什么需要这样做......除了 System.Windows.Forms.Form 不允许您覆盖 .Close().Dispose() ,那该怎么办?目前我正在使用这个解决方案:

    private void RestartForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        done.Set();
        done.Close();
    }

这适用于我的应用程序......但 FxCop 仍然显示此消息。我被覆盖了吗,我可以安全地忽略它,还是有另一种方式我应该这样做?

最佳答案

您需要从 Dispose 覆盖 Form 方法

通常,这会在 RestartForm.Designer.cs 文件中自动覆盖,因此您需要将处置移动到您的代码文件中,以便您可以添加任何需要添加的代码,而无需设计人员重写。

在 RestartForm.cs 中

protected override void Dispose(bool disposing)
{
  if (disposing)
  {
    if (components != null)
    {
      components.Dispose();
    }

    // Dispose stuff here
  }

  base.Dispose(disposing);
}

关于c# - 如何扩展 WinForm 的 Dispose 方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1052147/

10-13 08:16