कृपया ध्यान दें: यह प्रश्न "विनाशक" और "अंतिमकरण" और उनके सही उपयोग के बीच शब्दावली में अंतर के बारे में है। मैंने सी # और सी ++/सीएलआई में उनके उपयोग के उदाहरण केवल उदाहरण दिए हैं कि मैं सवाल क्यों पूछ रहा हूं। मैं अच्छी तरह से जानता हूं कि इसे सी # और सीएलआर दोनों में कैसे कार्यान्वित किया जाता है, लेकिन मैं शब्दावली के सही उपयोग के बारे में पूछ रहा हूं।एक विनाशक और फाइनलाइज़र के बीच का अंतर?
सी # दुनिया में शब्द "नाशक" और "finalizer" जो मुझे लगता है क्योंकि सी # विनिर्देश गैर नियतात्मक सफाई कार्यक्षमता का वर्णन शब्द "नाशक" उपयोग कर रहा है काफी दूसरे के स्थान पर प्रयोग की जाने वाली, लग रहे हैं , जबकि सीएलआर दस्तावेज हमेशा "फाइनलाइज़र" शब्द का उपयोग करता है, इसलिए सी # के दायरे में उनका मतलब एक ही बात है।
हालांकि, सी ++/सीएलआई विनिर्देश में दोनों के बीच एक अंतर है। यह दोनों नियतात्मक और गैर नियतात्मक सफाई की अनुमति देता है, और नियतात्मक कार्यक्षमता के लिए शब्द "नाशक" और गैर नियतात्मक कार्यक्षमता के लिए "finalizer" का उपयोग करता है:
finalizer गैर नियतात्मक सफाई प्रदान करता है। एक फाइनेंजर एक "आखिरी मौका" समारोह है जिसे कचरा संग्रह के दौरान निष्पादित किया जाता है, आमतौर पर उस वस्तु पर जिसका विनाशक निष्पादित नहीं किया गया था।
इसके अतिरिक्त destructor और finalizer के विकिपीडिया विवरण संकेत मिलता है कि विनाशकर्ता और finalizers अलग अवधारणाओं रहे हैं, और नियतिवाद के संबंध में पदों की C++/CLI कल्पना के उपयोग का समर्थन करता है:
विनाशकर्ता के विपरीत, finalizers हैं निर्धारिक नहीं। जब कोई प्रोग्राम स्पष्ट रूप से किसी ऑब्जेक्ट को मुक्त करता है तो एक विनाशक चलाया जाता है। एक कटाई, इसके विपरीत, निष्पादित किया जाता है जब आंतरिक कचरा संग्रह प्रणाली वस्तु को मुक्त करती है।
सवाल:
वहाँ है, को देखने के एक कंप्यूटर विज्ञान की दृष्टि से, एक "नाशक" और एक "finalizer" के बीच एक स्पष्ट रूप से परिभाषित अंतर है, या शब्दावली कुछ है कि केवल कर सकते हैं प्रासंगिक रूप से परिभाषित किया जाना चाहिए?
यदि स्पष्ट रूप से परिभाषित अंतर है, तो सी # spec 'गलत' शब्दावली का उपयोग क्यों करेगा?
दिलचस्प; नोट्स से यह निश्चित रूप से लगता है कि विनाशक ने निर्धारणा को इंगित नहीं किया था, इसलिए मुझे लगता है कि आप शायद सही हैं कि यह एक भेद है जो तब से विकसित हुआ है। –