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

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