O que eu gosto de fazer é declarar os objetos sem inicializá-los, mas definir seus valores padrão para Nothing
. Então, no final do loop, escrevo:
If anObject IsNot Nothing Then anObject.Dispose()
Aqui está um exemplo completo:
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
Isso também funciona muito bem para colocar seus objetos principais no topo de uma rotina, usá-los dentro de uma Try
rotina e, em seguida, descartá-los em um Finally
bloco:
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; }
declaração sobreSystem.IDisposable
.