我試圖根據微軟的源代碼分析解決我的所有項目的警告(CA:XXXXX)CA2000:失去範圍和Form.Show()之前釋放對象
一個警告的是「CA2000:配置對象失去範圍」
我的代碼之前:
Private sub Foo()
Dim O As New Form1()
O.Show()
End Sub
Visual Studio中說,該物體O不是一次性的,在這種情況下,我不能用使用關鍵字,因爲我會End Using
後失去了目標O :
Private sub Foo()
Using O As New Form1()
O.Show() 'The form will open then close !!!
End Using
End Sub
的形式,然後會打開和關閉
如何獲得在這樣的情況下與CA2000騎,我並不需要忽略,我想解決和修復。
謝謝。
非常感謝,你需要告訴微軟不是我:)我認爲有更多的標準解決方案,特別是我面臨與我的項目,非常大,很多圖形用戶界面巨大的記憶。 – Sameh
@Sameh CA2000是一種常見的提供錯誤結果的方法,因爲無法知道IDisposable是否必須處置。這就是爲什麼它很容易被忽略,爲什麼它是一個代碼分析警告,而不是一個編譯器警告...... –
從我的經驗來看,除非你有理由,否則總是使用標準,不要忽略警告。標準= 99%標準+ 1%例外,只有有經驗的人應該使用1%知道原因 – Sameh