Files
Common-VS2019/SacsStandardBase/Base/Core/SacsDisposable.cs
T
2025-10-21 16:50:17 +01:00

64 lines
1.8 KiB
C#

using System;
namespace Sarand.Net.Standard.Base.Core
{
//=======================================================================
/// <summary>
/// Disposable class.
/// <br/>- Override 'protecetd void Dispose(bool disposing)' to dispose resources when flag is true.
/// </summary>
public interface ISacsDisposable : IDisposable
{
/// <summary>Returns flag to indicate whether object has been disposed.</summary>
bool Disposed { get; }
}
//=======================================================================
public abstract class SacsDisposable : ISacsDisposable
{
//-------------------------------------------------------------------
// Data members.
private bool disposed = false;
//-------------------------------------------------------------------
// Construction.
protected SacsDisposable()
{
}
//-------------------------------------------------------------------
// Disposal.
~SacsDisposable()
{
Dispose(!disposed);
}
public void Dispose()
{
if (disposed) return;
Dispose(true);
disposed = true;
GC.SuppressFinalize(this);
}
protected abstract void Dispose(bool disposing);
//-------------------------------------------------------------------
// Properties.
public bool Disposed { get { return disposed; } }
//-------------------------------------------------------------------
// Utilities.
//-------------------------------------------------------------------
}
//=======================================================================
public static class DisposableUtil
{
//-------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
}