Computer >> Máy Tính >  >> Lập trình >> C#

Chúng ta có thể có bao nhiêu hàm hủy trong một lớp trong C #?


Trong c #, Destructor là một phương thức đặc biệt của một lớp và nó được sử dụng bên trong một lớp để hủy đối tượng hoặc các thể hiện của các lớp.

Chỉ có thể có một hàm hủy bên trong một lớp

Sau đây là các thuộc tính của hàm hủy trong c #

  • Bộ hủy sẽ không nhận bất kỳ tham số nào

  • Bộ hủy sẽ bắt đầu bằng ký hiệu dấu ngã (~)

  • Không thể xác định vùng hủy (~) trong Cấu trúc.

  • Không thể gọi trình hủy. Chúng được gọi tự động.

  • Bộ hủy gọi ngầm định Finalize trên lớp cơ sở của đối tượng.

Ví dụ

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

Trình hoàn thiện ngầm gọi Finalize trên lớp cơ sở của đối tượng. Do đó, lệnh gọi đến trình hoàn thiện được dịch ngầm thành mã sau -

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

Người lập trình không có quyền kiểm soát khi nào trình hoàn thiện được gọi

Nếu chúng ta khai báo nhiều hơn một hàm hủy thì trình biên dịch sẽ báo lỗi.

'Demo' đã xác định một thành viên được gọi là '~ Demo'

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