मैं सोच रहा हूं कि यह क्यों अनुशंसा की जाती है कि हमें अंतिम रूप से प्रबंधित संसाधनों को रिलीज़ करना चाहिए। यदि आप http://msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx पर कोड उदाहरण देखते हैं, और स्ट्रिंग के लिए खोज करें "दो अलग-अलग परिदृश्यों में निपटान करें (बूल निपटान) निष्पादित करें" और उस टिप्पणी को पढ़ें, तो आप समझेंगे कि मेरा क्या मतलब है।क्यों "अंतिम विधि किसी अन्य ऑब्जेक्ट का संदर्भ नहीं देना चाहिए"?
केवल संभावना है कि मैं सोच सकता हूं कि शायद इस तथ्य के साथ कुछ ऐसा करना है कि अंतिम रूप देने के लिए भविष्यवाणी करना संभव नहीं है। क्या किसी को सही जवाब पता है?
धन्यवाद, मिशाल
लेकिन अगर मेरी ऑब्जेक्ट (जिसे वर्तमान में अंतिम रूप दिया जा रहा है) अन्य प्रबंधित ऑब्जेक्ट का संदर्भ रख रहा है, मुझे लगता है कि सीएलआर यह सुनिश्चित करता है कि संदर्भित वस्तु इस चरण में जिंदा है। (मैं कचरा संग्रह की अवधारणा से अनुमान लगा रहा हूं, कि जब तक ऑब्जेक्ट ऑब्जेक्ट का संदर्भ दिया जाता है, तो इसे साफ़ नहीं किया जाएगा) – mishal153
लेकिन अगर मेरी ऑब्जेक्ट (जिसे वर्तमान में अंतिम रूप दिया जा रहा है) अन्य प्रबंधित ऑब्जेक्ट का संदर्भ रख रहा है, तो मुझे लगता है कि सीएलआर यह सुनिश्चित करता है कि इस चरण में संदर्भित वस्तु जीवित है। (मैं केवल कचरा संग्रह की अवधारणा से अनुमान लगा रहा हूं, कि जब तक आसन ऑब्जेक्ट का संदर्भ दिया जाता है तो इसे साफ़ नहीं किया जाएगा)। तो यह एक सीएलआर बग होगा जो मुझे लगता है कि यदि पैरेंट ऑब्जेक्ट को अंतिम रूप देने से पहले संदर्भित ऑब्जेक्ट को पहले ही अंतिम रूप दिया गया है। – mishal153
जब तक कोई वस्तु * पहुंच योग्य * हो, तब तक इसे साफ़ नहीं किया जाएगा। यदि आपकी वस्तु को अंतिम रूप दिया जा रहा है, तो यह पहुंच योग्य नहीं है, और किसी भी संदर्भ में यह धारण नहीं है (और इस प्रकार गिनती नहीं है)। – cHao