IDisposeable 最佳实现
Posted nocanstillbb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDisposeable 最佳实现相关的知识,希望对你有一定的参考价值。
public class MyClass : IDisposable { #region 变量声明 // 指向外部非托管资源 private IntPtr handle; // 此类使用的其它托管资源. private Component Components; // 跟踪是否调用.Dispose方法,标识位,控制垃圾收集器的行为 private bool isDisposed = false; #endregion #region Finalizer ~MyClass() { Dispose(false); } #endregion #region IDispseable 接口实现 public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } #endregion #region 释放方法 /// <summary> /// 释放非托管资源 /// </summary> /// <param name="isManual">手动调用为true,系统调用为flase</param> protected virtual void Dispose(bool isManual) { if (isDisposed) return; isDisposed = true; //释放非托管资源 handle = IntPtr.Zero; if (isManual) { //释放其他disose对象 Components?.Dispose(); } } #endregion }
以上是关于IDisposeable 最佳实现的主要内容,如果未能解决你的问题,请参考以下文章