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


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

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

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

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

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

  • 结构中不允许定义析构函数 (~)。

  • 不能调用析构函数。它们会被自动调用。

  • 析构函数会隐式地对对象的基类的 Finalize 函数进行调用。

示例

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

终止函数会隐式地对对象的基类的 Finalize 函数进行调用。因此,对终止函数的调用会隐式地转换为以下代码 −

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

程序员无法控制终止函数的调用时间

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

'Demo' 已定义名为 '~Demo' 的成员

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

更新于:2020-08-04

348 次观看

开启你的职业

完成课程认证

开始学习
广告