आप नहीं करते हैं। यह एक कचरा कलेक्टर स्वचालित रूप से करता है - मूल रूप से जब .NET रनटाइम को स्मृति की आवश्यकता होती है, तो यह चारों ओर घूमती है और उन वस्तुओं को हटा देती है जो उपयोग में नहीं हैं।
इस काम के लिए आपको क्या करना है ऑब्जेक्ट में सभी लिंक्स को हटाना है।
आपके मामले में ....
obj1 = null;
अंत में, तब ऑब्जेक्ट का संदर्भ नहीं दिया गया है और कचरा कलेक्टर से दावा किया जा सकता है।
अधिक जानकारी के लिए आप http://en.wikipedia.org/wiki/Garbage_collection_(computer_science) देख सकते हैं।
ध्यान दें कि यदि ऑब्जेक्ट में अप्रबंधित संसाधनों (जैसे खुली फ़ाइलें इत्यादि) के संदर्भ हैं, तो इसे डिस्पोजेबल पैटर्न (आईडीस्पोजेबल इंटरफ़ेस) लागू करना चाहिए और जब आपको ऑब्जेक्ट की आवश्यकता नहीं होती है तो आपको उन संदर्भों को स्पष्ट रूप से रिलीज़ करना चाहिए।
या इसके बजाय केवल C++/CLI का उपयोग करें, इसलिए आपको यह याद रखना नहीं है कि कौन से प्रकार IDISposable लागू करते हैं और जो नहीं करते हैं, यह ऑब्जेक्ट को स्वचालित रूप से कॉल करेगा जब ऑब्जेक्ट स्कोप से बाहर हो जाता है (यदि हैंडल के रूप में घोषित नहीं किया गया है) –
सी ++/सीएलआई का उपयोग करने के लिए शायद ही कोई अनिवार्य कारण! :) –
@ बेन वोजिट यदि आप सही ढंग से आईडीस्पोज़ेबल को कार्यान्वित करते हैं तो डिसपोज़ फ़ंक्शन को सी # में दायरे से बाहर होने पर भी कॉल किया जाएगा। –