Yapmaktan hoşlandığım şey, nesneleri başlatmadan bildirmek, ancak varsayılan değerlerini olarak ayarlamaktır Nothing
. Sonra döngünün sonunda şunu yazıyorum:
If anObject IsNot Nothing Then anObject.Dispose()
İşte tam bir örnek:
Public Sub Example()
Dim inputPdf As PdfReader = Nothing, inputDoc As Document = Nothing, outputWriter As PdfWriter = Nothing
GoodExit:
If inputPdf IsNot Nothing Then inputPdf.Dispose()
If inputDoc IsNot Nothing Then inputDoc.Dispose()
If outputWriter IsNot Nothing Then outputWriter.Dispose()
End Sub
Bu aynı zamanda ana nesnelerinizi bir rutinin en üstüne koymak, onları bir Try
rutin içinde kullanmak ve ardından bir Finally
blok halinde atmak için harika çalışıyor :
Private Sub Test()
Dim aForm As System.Windows.Forms.Form = Nothing
Try
Dim sName As String = aForm.Name
Catch ex As Exception
Finally
If aForm IsNot Nothing Then aForm.Dispose()
End Try
End Sub
bool IsDisposed { get; }
Üzerinde bir açıklama olmaması ilginç görünüyorSystem.IDisposable
.