Lo que me gusta hacer es declarar los objetos sin inicializarlos, pero establecer sus valores predeterminados en Nothing
. Luego, al final del ciclo escribo:
If anObject IsNot Nothing Then anObject.Dispose()
Aquí tienes una muestra completa:
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
Esto también funciona muy bien para colocar sus objetos principales en la parte superior de una rutina, usarlos dentro de una Try
rutina y luego desecharlos en un Finally
bloque:
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; }
declaración sobreSystem.IDisposable
.