【c# 学习笔记】析构函数

  析构函数 用于在类销毁之前释放类实例所使用的托管和非托管资源。对应c#应用程序所创建的大多数对象,可以依靠.net Framework的垃圾回收站(GC)

来隐式地执行内存管理任务。但若创建封装了非托管资源的对象,在应用程序使用完这些非托管资源之后,垃圾回收站将运行对象的析构函数(即Finalize方法)

来释放这些资源。如下:

  

    class Person
    {     
         ~Person()
        {
            Console.WriteLine("析构函数被调用了");          
        }
 
    }

  该析构函数隐式地调用了基类Object的Finalize方法,上面析构函数被隐式地转换为如下代码:

  

    protected override void Finalize()
    {
        try
        {
            Console.WriteLine("析构函数被调用了");
        }
       finally
        {
             base.Finalize();
        }
    }

  注:在定义析构函数时需要注意以下几点:

    ① 不能在结构体中定义析构函数,只能对类使用析构函数;

    ② 一个类只能有一个析构函数;

    ③ 无法继承或重载析构函数;

    ④ 无法显式地调用析构函数,析构函数是有垃圾回收器自动调用的;

    ⑤ 析构函数既没有修饰符也没有参数。

猜你喜欢

转载自www.cnblogs.com/xiaoyehack/p/9204313.html
今日推荐