IDisposable 模式





0/5 (0投票)
IDisposable 模式并非经典模式之一。它是MSDN中建议用于实现IDisposable接口的一种模式。你应该
MSDN 中建议用于实现 IDisposable 接口的一种模式。你应该熟悉这种模式
或该接口,因为它是了解 .Net 框架的基础知识。
如何使用 IDisposable 模式
让我们来看一个代码示例。
public class DisposeObject : IDisposable
{
#region 成员
private bool _disposed = false;
#endregion
#region IDisposable 成员
~DisposeObject()
{
Dispose(false);
}
/// <summary>
/// 释放当前对象
/// </summary>
public void Dispose()
{
Dispose(true);
}
private void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
// 清理资源
CleanUp();
// 该对象只有在方法
// 获取 true 时才会被清理 - 我们在 Dispose 方法中。
// 因此,你应该调用 GC.SupressFinalize 来
// 将此对象从终结队列中移除
// 并防止为此对象执行终结代码
// 第二次执行。
// 来自 MSDN。
GC.SuppressFinalize(this);
}
// 已发生释放
_disposed = true;
}
}
private void CleanUp()
{
// 在此处放置用于释放所有托管
// 和非托管资源的代码
}
#endregion
}