C#之析构函数

定义:

析构函数,是类的一个特殊的成员函数,当类的对象超出范围时执行。
简单来讲,析构函数,是用来帮助我们来进行废弃对象的内存回收的机制。

语法:
    ~类名()
    {

    }

示例:

class Car 
{ 
       ~Car() //析构函数
       {
//.......
       }
}
注意点:

1.只能对类使用析构函数。
2.一个类只能有一个析构函数。
3.无法继承或重载析构函数。
4.无法调用析构函数。 它们是被自动调用的。
5.析构函数既没有修饰符,也没有参数。
6.不应使用空析构函数。 如果析构函数为空,只会导致不必要的性能损失。

作用:

程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。 垃圾回收器检查是否存在应用程序不再使用的对象。 如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。 程序退出时也会调用析构函数。
通常,与运行时不进行垃圾回收的开发语言相比,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#之析构函数)