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

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

来释放这些资源。如下:

  

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

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

  

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

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

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

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

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

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

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

05-23 01:31