ใน 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(); } }