我认为我的问题的要点是:最佳实践是什么,或者 Visual Studio 2019 是否给我关于处置项目的错误提示? 这篇文章 谈论代码分析中的错误,但处理项目仍然有点超出我的知识领域。我有一个表格,其中声明了一些字段:public partial class FormRequestLines : Form{ Process view3dProcess; Process view2dProcess; Label label; ......这些字段用于(重新)启动和终止进程,以及以不同的方法写入和隐藏到新创建的标签。为了处理这些字段,我创建了一个 FormClosed 方法:private void FormRequestLines_FormClosed(object sender, FormClosedEventArgs e){ if (view2dProcess != null) { view2dProcess.Dispose(); } if (view3dProcess != null) { view3dProcess.Dispose(); } if (label != null) { label.Dispose(); }}1) 字段的处理方式正确吗?2) 这是正确的方式和地点 处理字段?Visual Studio 给了我这些警告:PS:我是用VS的设计器来创建表单的。
1 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
静态代码分析工具期望您在 Dispose()
方法中进行处理。您需要重写表单中的 Dispose
方法并删除 FormRequestLines_FormClosed
。
查看Form.Close 和 Form.Dispose 之间的区别
通常,这会在 FormRequestLines.Designer.cs 文件中自动覆盖,因此您需要将处置移至代码文件中,以便您可以添加需要添加的任何代码,而无需设计器重写。
protected override void Dispose(bool disposing)
{
if (disposing)
{
components?.Dispose();
view2dProcess?.Dispose();
view3dProcess?.Dispose();
label?.Dispose();
}
base.Dispose(disposing);
}
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消