อะไรคือความแตกต่างระหว่างตัวทำลายและเมธอด Finalize ในคลาส
ฉันเพิ่งค้นพบว่า Visual Studio 2008 พิจารณาตัวทำลายที่มีความหมายเหมือนกันกับวิธี Finalize ซึ่งหมายความว่า Visual Studio จะไม่ยอมให้คุณกำหนดทั้งสองวิธีพร้อมกันในคลาส
ตัวอย่างเช่นส่วนของรหัสต่อไปนี้:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
ให้ข้อผิดพลาดต่อไปนี้ในการเรียกให้เสร็จสิ้นในตัวทำลาย:
การเรียกไม่ชัดเจนระหว่างวิธีการหรือคุณสมบัติต่อไปนี้: 'TestFinalize. ~ TestFinalize ()' และ 'TestFinalize.Finalize ()'
และหากมีการแสดงความคิดเห็นการเรียกไปยัง Finalize จะทำให้เกิดข้อผิดพลาดดังต่อไปนี้:
พิมพ์ 'ManagementConcepts.Service.TestFinalize' แล้วกำหนดสมาชิกที่เรียกว่า 'Finalize' ด้วยประเภทพารามิเตอร์เดียวกัน