C # [डुप्लिकेट] में अप्रबंधित संसाधनों की सफाई कैसे करें

Jan 20 2021

मेरे पास यह वर्ग है:

    public class A
    {
//Some logic code here
    }

मेरा सवाल यह है कि इस दायरे से बाहर जाने के बाद मैं इस वर्ग के आधार पर बनाई गई किसी भी वस्तु को कैसे नष्ट या नष्ट कर सकता हूं?

उदाहरण के लिए:

  A a = new A();
    //some code here

के बाद //some code hereमैं aनष्ट कर दिया या निपटान और उसकी आवंटित स्मृति को जारी करना चाहता हूँ ।

जवाब

1 ispiro Jan 20 2021 at 03:55

मैं शीर्षक को अनदेखा करूंगा और सवाल के शरीर पर ध्यान केंद्रित करूंगा क्योंकि यह सवाल से स्पष्ट लगता है कि मुद्दा क्या है।

संक्षिप्त उत्तर: आप नहीं। जब यह आवश्यक हो तो यह कचरा कलेक्टर द्वारा स्वचालित रूप से ध्यान रखा जाएगा। (आपको कचरा संग्राहक चलाने की आवश्यकता नहीं है। यह स्वचालित रूप से होता है।)

कचरा संग्रहकर्ता तब उन संस्थाओं की तलाश करता है aजो आपके उदाहरण की तरह, दायरे से बाहर हो गई हैं , और उनके द्वारा उपयोग की जाने वाली जगह को मुक्त कर देगी। फिर यह देखा जाएगा कि आंतरिक रूप से aभी, स्पष्ट रूप से दायरे से बाहर हो गए हैं (जब तक कि वे आपके कोड में कहीं और संदर्भित न हों), और उन्हें संभाल लें।

यह कहते हुए कि, जब आप उन वर्गों के चर का उपयोग करते हैं जो Disposeइसे लागू करने के लिए Disposeस्पष्ट रूप से कॉल करना या usingब्लॉक का उपयोग करना सबसे अच्छा है। आप एक फाइनल भी लागू कर सकते हैं जो कि aनिपटाए जाने पर निष्पादित किया जाएगा। लेकिन ऐसा लगता है कि जैसा आप पूछ रहे थे वैसा नहीं है।