-1
我在一些的WinForms代碼的工作,現在,我所遇到的線條像這幾次:如果對象實際上不會用於代碼中,我應該使用using語句/ dispose嗎?
...
System.Diagnostics.Process.Start(someFileName);
...
...剛剛揭開序幕的一些過程中的客戶機上,而完全忘記了這件事。 Process.Start(someFileName)
返回一個Process
類型的對象,它實現了IDisposable
,但代碼沒有對該對象做任何事情,因爲整個想法只是觸發該流程並忘記它。
在這種情況下,Process
對象是否應該丟棄,如果我們沒有把它放在內存中呢?喜歡的東西:
using (System.Diagnostics.Process.Start(someFileName) { }
或
var process = System.Diagnostics.Process.Start(someFileName);
process.Dispose();
'System.Diagnostics.Process.Start(someFileName).Close();' –
如果實現IDisposable然後清除它,使用一個(){}是執行此操作的規範方法。 –
簡短的回答是:你應該處置。不管你使用哪兩種代碼變體(假設你不把代碼放入使用塊) –