美文网首页C#
面向对象(八)-析构函数

面向对象(八)-析构函数

作者: 元宇宙协会 | 来源:发表于2017-11-19 12:52 被阅读36次

析构函数

  • 定义:
    简单来讲,析构函数,是用来帮助我们来进行废弃对象的内存回收的机制。
  • 语法
 ~类名()
    {

    }
  • 示例
class Car 
{ 
       ~Car() //析构函数
       {

       }
}
  • 注意点
只能对类使用析构函数。
一个类只能有一个析构函数。
无法继承或重载析构函数。
无法调用析构函数。 它们是被自动调用的。
析构函数既没有修饰符,也没有参数。
不应使用空析构函数。 如果析构函数为空,只会导致不必要的性能损失。
  • 作用
    程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。 垃圾回收器检查是否存在应用程序不再使用的对象。 如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。 程序退出时也会调用析构函数。
    通常,与运行时不进行垃圾回收的开发语言相比,C# 无需太多的内存管理。 这是因为 .NET Framework 垃圾回收器会隐式地管理对象的内存分配和释放。 但是,当应用程序封装窗口、文件和网络连接这类非托管资源时,应当使用析构函数释放这些资源。 当对象符合析构时,垃圾回收器将运行对象的Finalize方法。

  • 继承链中析构函数的释放顺序

class First
        {
            ~First()
            {
                Console.WriteLine("First's destructor is called.");
            }
        }

        class Second : First
        {
            ~Second()
            {
                Console.WriteLine("Second's destructor is called.");
            }
        }

        class Third : Second
        {
            ~Third()
            {
               Console.WriteLine("Third's destructor is called.");
            }
        }

        class TestDestructors
        {
            static void Main()
            {
                Third t = new Third();
            }

        }
        /* Output :
            Third's destructor is called.
            Second's destructor is called.
            First's destructor is called.
        */

相关文章

  • 面向对象(八)-析构函数

    析构函数 定义:简单来讲,析构函数,是用来帮助我们来进行废弃对象的内存回收的机制。 语法 示例 注意点 作用程序员...

  • C++之析构函数

    析构函数的概述 析构函数 完成对象的清理工作,先清理,再释放对象空间。析构函数也是编译器自动调用。 析构函数 不能...

  • face 10面向对象

    面向对象 请写出php的构造函数和析构函数 __construct() __destruct() 着重记忆php面...

  • 面向对象

    面向对象技术的基本概念是:对象,类,继承。C++中的空类默认产生哪些类成员函数?默认产生构造函数,析构函数,拷贝构...

  • C++基础-构造函数和拷贝函数

    构造函数 析构函数 析构函数: 相当于临终遗言,对象被回收的时候会被调用。如果有在对象内部开辟堆内存,在析构函数里...

  • [C++之旅] 13 析构函数

    [C++之旅] 13 析构函数 析构函数与构造函数相反,构造函数在实例化一个对象时调用,而析构函数在销毁一个对象时...

  • C++ 从入门到放弃 (Day-06)

    析构函数(Destructor) ◼ 析构函数(也叫析构器),在对象销毁的时候自动调用,一般用于完成对象的清理工作...

  • 12-析构函数(Destructor)

    析构函数(Destructor) 析构函数(也叫析构器),在对象销毁的时候自动调用,一般用于完成对象的清理工作 在...

  • Swift中的deinit方法

    deinit属于析构函数 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的...

  • C++基础③new对象,继承,友元函数,函数的可变参数

    接续上篇C++基础②构造函数,析构函数,拷贝构造函数 前言 C++是一门面向对象的编程语言 , 创建用以创建对象 ...

网友评论

    本文标题:面向对象(八)-析构函数

    本文链接:https://www.haomeiwen.com/subject/xqwuvxtx.html