C# 中一个类可以有多少个析构函数?

csharpserver side programmingprogramming更新于 2025/4/21 19:37:17

在 c# 中,析构函数是类的一个特殊方法,用于在类内部销毁对象或类的实例。

一个类中只能有一个析构函数

以下是 c# 中析构函数的属性

  • 析构函数不接受任何参数

  • 析构函数以波浪符号 (~) 开头

  • 析构函数 (~) 不能在结构体中定义。

  • 无法调用析构函数。它们会自动调用。

  • 析构函数隐式调用对象基类上的 Finalize。

示例

class Demo{
   ~Demo(){ //Finalizer
      // cleanup 语句...
   }
}
class Program{
   static void Main(){
      Console.ReadLine();
   }
}

终结器隐式调用对象基类上的 Finalize。因此,对终结器的调用被隐式转换为以下代码 −

protected override void Finalize(){
   try{
      // Cleanup 语句...
   }
   finally{
      base.Finalize();
   }
}

程序员无法控制何时调用终结器

如果我们声明多个析构函数,则编译器将抛出错误。

'Demo' 已经定义了一个名为 '~Demo' 的成员

class Demo{
   ~Demo(){
   }
   ~Demo(){
   }
}
class Program{
   static void Main(){
      Console.ReadKey();
   }
}

相关文章