c# में, डिस्ट्रक्टर एक वर्ग की एक विशेष विधि है और इसका उपयोग कक्षा के अंदर वस्तुओं या कक्षाओं के उदाहरणों को नष्ट करने के लिए किया जाता है।
एक वर्ग के अंदर केवल एक विध्वंसक हो सकता है
सी # में विनाशक के गुण निम्नलिखित हैं
-
विध्वंसक कोई पैरामीटर नहीं लेंगे
-
विनाशक एक टिल्ड प्रतीक (~) से शुरू होगा
-
डिस्ट्रक्टर्स (~) को स्ट्रक्चर्स में परिभाषित नहीं किया जा सकता है।
-
विनाशक नहीं कहा जा सकता है। उन्हें स्वचालित रूप से बुलाया जाता है।
-
विध्वंसक वस्तु के आधार वर्ग पर अंतिम रूप से कॉल करता है।
उदाहरण
class Demo{ ~Demo(){ //Finalizer // cleanup statements... } } class Program{ static void Main(){ Console.ReadLine(); } }
फ़ाइनलाइज़र परोक्ष रूप से ऑब्जेक्ट के बेस क्लास पर फ़ाइनलाइज़ को कॉल करता है। इसलिए, एक फ़ाइनलाइज़र के लिए एक कॉल का परोक्ष रूप से निम्नलिखित कोड में अनुवाद किया जाता है -
protected override void Finalize(){ try{ // Cleanup statements... } finally{ base.Finalize(); } }
जब फाइनलाइज़र कहा जाता है तो प्रोग्रामर का कोई नियंत्रण नहीं होता है
यदि हम एक से अधिक विनाशक घोषित करते हैं तो संकलक एक त्रुटि फेंक देगा।
'डेमो' पहले से ही '~Demo' नामक सदस्य को परिभाषित करता है
class Demo{ ~Demo(){ } ~Demo(){ } } class Program{ static void Main(){ Console.ReadKey(); } }