正确实现IDisposable

1.实现IDisposable接口

2.编码代码

    public class Demo : IDisposable
    {

        public void Dispose()
        {
            ClearResource(true);
            GC.SuppressFinalize(this);//告诉GC这个对象已经不需要再次回收了
        }

        ~Demo()
        {
            ClearResource(false);
        }
        /// <summary>
        /// 清理资源
        /// </summary>
        /// <param name="isInvokeDispose"></param>
        protected virtual void ClearResource(bool isInvokeDispose)
        {
            if (!IsDisposed)
            {
                if (isInvokeDispose)
                {
                    // 释放托管资源
                }

                // 释放非托管资源

                IsDisposed = true;
            }
        }
        private bool IsDisposed;

        

    }
原文地址:https://www.cnblogs.com/xdoudou/p/3059691.html