Cuando implementar la interfaz IDisposable:
- Cuando la clase contenga alguna variable de tipo "Unmanaged".
- Cuando la clase contenga alguna variable que implemente la interfaz IDisposable.
- Cuando la clase contenga manejadores (handlers) de eventos.
#Region "IDisposable" Private m_disposed As Boolean
Protected ReadOnly Property Disposed() as Boolean Get Return m_disposed End Get End Property
Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not m_disposed Then If disposing Then ' Free other state (managed objects). End If ' Free your own state (unmanaged objects). ' Set large fields to null. End If
m_disposed = True End Sub
Public Sub Dispose() Implements IDisposable.Dispose ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. Dispose(True) GC.SuppressFinalize(Me) End Sub
Protected Overrides Sub Finalize() ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. Dispose(False) MyBase.Finalize() End Sub#End Region