C # [डुप्लिकेट] में अप्रबंधित संसाधनों की सफाई कैसे करें
मेरे पास यह वर्ग है:
public class A
{
//Some logic code here
}
मेरा सवाल यह है कि इस दायरे से बाहर जाने के बाद मैं इस वर्ग के आधार पर बनाई गई किसी भी वस्तु को कैसे नष्ट या नष्ट कर सकता हूं?
उदाहरण के लिए:
A a = new A();
//some code here
के बाद //some code here
मैं a
नष्ट कर दिया या निपटान और उसकी आवंटित स्मृति को जारी करना चाहता हूँ ।
जवाब
मैं शीर्षक को अनदेखा करूंगा और सवाल के शरीर पर ध्यान केंद्रित करूंगा क्योंकि यह सवाल से स्पष्ट लगता है कि मुद्दा क्या है।
संक्षिप्त उत्तर: आप नहीं। जब यह आवश्यक हो तो यह कचरा कलेक्टर द्वारा स्वचालित रूप से ध्यान रखा जाएगा। (आपको कचरा संग्राहक चलाने की आवश्यकता नहीं है। यह स्वचालित रूप से होता है।)
कचरा संग्रहकर्ता तब उन संस्थाओं की तलाश करता है a
जो आपके उदाहरण की तरह, दायरे से बाहर हो गई हैं , और उनके द्वारा उपयोग की जाने वाली जगह को मुक्त कर देगी। फिर यह देखा जाएगा कि आंतरिक रूप से a
भी, स्पष्ट रूप से दायरे से बाहर हो गए हैं (जब तक कि वे आपके कोड में कहीं और संदर्भित न हों), और उन्हें संभाल लें।
यह कहते हुए कि, जब आप उन वर्गों के चर का उपयोग करते हैं जो Dispose
इसे लागू करने के लिए Dispose
स्पष्ट रूप से कॉल करना या using
ब्लॉक का उपयोग करना सबसे अच्छा है। आप एक फाइनल भी लागू कर सकते हैं जो कि a
निपटाए जाने पर निष्पादित किया जाएगा। लेकिन ऐसा लगता है कि जैसा आप पूछ रहे थे वैसा नहीं है।