我認(rèn)為我的問題的要點是:最佳實踐是什么,或者 Visual Studio 2019 是否給我關(guān)于處置項目的錯誤提示? 這篇文章 談?wù)摯a分析中的錯誤,但處理項目仍然有點超出我的知識領(lǐng)域。我有一個表格,其中聲明了一些字段:public partial class FormRequestLines : Form{ Process view3dProcess; Process view2dProcess; Label label; ......這些字段用于(重新)啟動和終止進(jìn)程,以及以不同的方法寫入和隱藏到新創(chuàng)建的標(biāo)簽。為了處理這些字段,我創(chuàng)建了一個 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的設(shè)計器來創(chuàng)建表單的。
1 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊
靜態(tài)代碼分析工具期望您在?Dispose()
?方法中進(jìn)行處理。您需要重寫表單中的?Dispose
?方法并刪除?FormRequestLines_FormClosed
。
查看Form.Close 和 Form.Dispose 之間的區(qū)別
通常,這會在 FormRequestLines.Designer.cs 文件中自動覆蓋,因此您需要將處置移至代碼文件中,以便您可以添加需要添加的任何代碼,而無需設(shè)計器重寫。
protected override void Dispose(bool disposing)
{
? if (disposing)
? {
? ? components?.Dispose();
? ? view2dProcess?.Dispose();
? ? view3dProcess?.Dispose();
? ? label?.Dispose();
? }
? base.Dispose(disposing);
}
- 1 回答
- 0 關(guān)注
- 176 瀏覽
添加回答
舉報
0/150
提交
取消