class dispose c# code example
Example 1: c# dispose pattern
#region IDisposable Support
private bool _disposedValue = false; // To detect redundant calls
/// <summary>
/// Releases unmanaged and - optionally - managed resources.
/// </summary>
/// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
protected virtual void Dispose(bool disposing)
{
if (!_disposedValue)
{
if (disposing)
{
/// dispose and set objects to null
/// Example -
/// _uow?.Dispose();
/// _ouw = null;
}
_disposedValue = true;
}
}
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
public void Dispose()
{
// Do not change this code. Put cleanup code in Dispose(bool disposing) above.
Dispose(true);
// GC.SuppressFinalize(this);
}
#endregion
Example 2: dispose method in c# with example
using System;
class DerivedClass : BaseClass
{
// To detect redundant calls
bool _disposed = false;
~DerivedClass() => Dispose(false);
// Protected implementation of Dispose pattern.
protected override void Dispose(bool disposing)
{
if (_disposed)
{
return;
}
if (disposing)
{
// TODO: dispose managed state (managed objects).
}
// TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
// TODO: set large fields to null.
_disposed = true;
// Call the base class implementation.
base.Dispose(disposing);
}
}
Example 3: dispose method in c# with example
protected virtual void Dispose(bool disposing)
{
}