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

在c#中,Destructor是类的一种特殊方法,它在类内部用于销毁对象或类实例。

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

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

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

  • 析构函数将以波浪号(〜)开头

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

  • 不能调用析构函数。它们是自动调用的。

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

示例

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

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

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

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

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

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

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