Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ในหนึ่งคลาสใน C# มีตัวทำลายล้างได้กี่ตัว?


ใน c# Destructor เป็นวิธีการพิเศษของคลาสและใช้ในคลาสเพื่อทำลายวัตถุหรืออินสแตนซ์ของคลาส

ภายในคลาสมีตัวทำลายล้างได้เพียงตัวเดียว

ต่อไปนี้เป็นคุณสมบัติของ destructor ใน c#

  • ตัวทำลายจะไม่รับพารามิเตอร์ใด ๆ

  • ตัวทำลายจะเริ่มต้นด้วยสัญลักษณ์ตัวหนอน (~)

  • ตัวทำลายล้าง (~) ไม่สามารถกำหนดได้ในโครงสร้าง

  • ไม่สามารถเรียกตัวทำลายล้างได้ พวกมันจะถูกเรียกใช้โดยอัตโนมัติ

  • Destructor เรียก Finalize โดยปริยายบนคลาสพื้นฐานของอ็อบเจกต์

ตัวอย่าง

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

Finalizer เรียก Finalize โดยปริยายบนคลาสพื้นฐานของอ็อบเจกต์ ดังนั้นการเรียก Finalizer จึงถูกแปลโดยปริยายเป็นโค้ดต่อไปนี้ -

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

โปรแกรมเมอร์ไม่สามารถควบคุมได้เมื่อมีการเรียกตัวสุดท้าย

หากเราประกาศตัวทำลายมากกว่าหนึ่งตัว คอมไพเลอร์จะส่งข้อผิดพลาด

'Demo' ได้กำหนดสมาชิกชื่อ '~Demo' แล้ว

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