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