zoukankan      html  css  js  c++  java
  • IDisposable

    public class TypeDisposable: IDisposable
        {
            /**/
            /// <summary>
            /// 该对象是否已被销毁过
            /// </summary>
            private bool disposed;
            /**/
            /// <summary>
            /// 这就是传说中的 Finalize函数,是不是和C++的析构函数很像?
            /// </summary>
            ~TypeDisposable()
            {
                Console.WriteLine("对象被销毁");

                Dispose(false);
                Console.ReadLine();
            }

            public void Dispose()
            {
                Console.WriteLine("手动销毁对象");
                Dispose(true);
                //通知GC, 偶已经被销毁过了,可以不用在管偶了。。。
                GC.SuppressFinalize(this);
            }

            /**/
            /// <summary>
            /// Dispose
            /// </summary>
            /// <param name="disposing">是否由程序直接调用</param>
            protected void Dispose(bool disposing)
            {
                if (!disposed)
                {
                    if (disposing)
                    {
                        //该函数为手动调用,此处可进行托管资源的清理
                        //比如此类中有一个类型为 DataSet 的变量 dsData
                        //此处可调用该对象的 Dispose 方法来清理托管资源
                    }

                    //进行非管资源的清理
                    //该类资源 GC 是无法管理的,只能依靠程序员自已释放
                    //不同的资源, 释放方法不一样
                }
                disposed = true;
                Console.ReadLine();
            }
        }

  • 相关阅读:
    「2019冬令营提高组」原样输出
    FJWC2019
    P2763 试题库问题
    P3979 遥远的国度
    P2754 [CTSC1999]家园
    P1251 餐巾计划问题
    P1382 楼房
    P1384 幸运数与排列
    P4294 [WC2008]游览计划
    P3345 [ZJOI2015]幻想乡战略游戏
  • 原文地址:https://www.cnblogs.com/single/p/1124915.html
Copyright © 2011-2022 走看看