1

当我的代码与规则不兼容时,我遇到了规则 EnsureLocalDisposalRule 的问题。

代码示例:

Form myForm = new myForm { MdiParent = this };
myForm .Show();

它违反了规则,我像这样更正了它

代码示例:

using (Form myForm = new myForm { MdiParent = this })
{
   myForm .Show();
}

但是我的工作代码有问题,因为经过上述更正后,我的代码WinForm object立即被销毁。

如何修复规则并使代码正常工作?

4

2 回答 2

2

大多数静态分析工具都有一个重大缺陷——它们只处理一般模式,并且它们通常不处理其规则的所有“有效”例外。静态分析规则引擎中内置的规则几乎总是存在有效的例外。

在这种情况下,您不能(也不应该)在使用.Show(). 表单将在关闭时正确处理。在这种特定情况下,这实际上是一个“错误”错误。

在这种情况下,您应该忽略此特定错误,因为它是误报。

于 2014-01-17T04:46:22.210 回答
0

以下更改将起作用。

我的表格。显示对话框();

由于它将表单作为模型对话框打开,它将停止程序执行。

于 2015-11-04T06:15:38.410 回答