Skip to content

.NET Core 实战 [No.82] 析构函数

🏷️ 《.NET Core 实战》

析构函数(destructor)与构造函数(constructor)的作用正好相反。

构造函数在创建对象实例时调用,用于对类型成员初始化;
析构函数在对象实例即将被回收时执行,可用于一些清理工作。

析构函数以 ~ 开头,无返回值,无参数,~ 之后紧跟类名(无空格)。

csharp
class Test {
    ~Test() {

    }
}

示例代码

Test.cs

csharp
using System;

namespace DestructorSample
{
    class Test
    {
        public Test()
        {
            Console.WriteLine("构造函数被调用。");
        }

        ~Test() {
            Console.WriteLine("析构函数被调用。");
        }
    }
}

Program.cs

csharp
using System;

namespace DestructorSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Test();
            GC.Collect(); // 垃圾回收
            Console.ReadLine();
        }

        static void Test()
        {
            var test = new Test();
        }
    }
}

参考:《.NET Core 实战:手把手教你掌握 380 个精彩案例》 -- 周家安 著