Dispose pattern (with comments and try{}finally block)
CodeKeep C# Feed Luglio 15th, 2008
Description: Implimentation of the IDisposable pattern with try{}finally block and comments.Link: http://www.codekeep.net/snippets/20aba13b-423c-4d42-b556-5d83f775adb1.aspx
~THISCLASSNAME()
{
this.Dispose( false );
}
//-------------------------------------------------------------------
/// <summary>
/// Immediately releases the unmanaged resources used by this object.
/// </summary>
//-------------------------------------------------------------------
public void Dispose()
{
this.Dispose( true );
GC.SuppressFinalize( this );
}
//-------------------------------------------------------------------
/// <summary>
/// Releases the unmanaged resources being used and optionally releases managed resources.
/// </summary>
/// <param name="disposeManaged">
/// <b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.
/// </param>
/// <remarks>
/// This method is called by the public Dispose method and the Finalize method. Dispose invokes the protected Dispose(Boolean) method with the <i>disposeManaged</i> parameter set to true. Finalize invokes Dispose(Boolean) with <i>disposeManaged</i> set to false.
/// </remarks>
/// <seealso href="http://msdn.microsoft.com/en-us/library/fs2xkftw.aspx"/>
//-------------------------------------------------------------------
protected virtual void Dispose( bool disposeManaged )
{
try
{
if( true == disposeManaged )
{
//
// TODO: Dispose managed resources.
//
}
//
// TODO: Release unmanaged resources.
//
}
finally
{
//base.Dispose( disposeManaged );
this._disposed = true;
}
}
private bool _disposed;