小编Uur*_*Uur的帖子

c#我的析构函数没有被调用?

我有这个简单的代码,并试图调用析构函数,但我不能称之为:(

我知道GarbageCollector会在必要时运行,所以我使用了GC.WaitForPendingFinalizers(); 但它也没有用.

这是我的代码:

class Program
    {
        static void Main(string[] args)
        {
            Calculator calculator = new Calculator();
            Console.WriteLine("{0} / {1} = {2}", 120, 15, calculator.Divide(120, 15)

            GC.Collect();
            GC.WaitForPendingFinalizers();

            Console.WriteLine("Program finishing");                           
        }

  }

class Calculator
    {

        // Constructor
        public Calculator()
        {
            Console.WriteLine("Calculator being created");
        }

        // Public Divide method
        public int Divide(int first, int second)
        {
            return first / second;
        }

        // Destructor
        ~Calculator()
        {
            Console.WriteLine("Destructor is called");

        }

    }
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

正在创建的计算器

120/15 = 8

程序完成

我究竟做错了什么?为什么我看不到"析构函数被调用"?

c# destructor finalize

3
推荐指数
1
解决办法
1733
查看次数

标签 统计

c# ×1

destructor ×1

finalize ×1