यदि किसी वर्ग में फाइनलाइज़र होता है, तो किसी भी गैर-शून्य ऑब्जेक्ट-रेफरेंस फ़ील्ड संदर्भित वस्तुओं को अन्यथा की तुलना में लंबे समय तक आयोजित करने का कारण बनेंगे।यदि ऑब्जेक्ट्स को अंतिम रूप से चलाने से पहले अनावश्यक माना जाता है, तो ऑब्जेक्ट-रेफरेंस फ़ील्ड्स को साफ़ करने से ऑब्जेक्ट्स को "पीढ़ी" जितनी जल्दी हो सके उतनी जल्दी इकट्ठा करने की अनुमति मिल जाएगी। यह एक बड़ी जीत हो सकती है।
यदि किसी ऑब्जेक्ट का जीवनकाल (उपयोगी या नहीं) किसी ऑब्जेक्ट के उपयोगी जीवनकाल को पार करने की अपेक्षा करता है जिसके संदर्भ में इसका संदर्भ होता है, तो अनिवार्य रूप से एक संदर्भ धारण करने से बाद की वस्तु को पूर्व तक एकत्रित होने से रोक दिया जाएगा (यानी संदर्भ बाद के ऑब्जेक्ट को बेकार बनने के बाद भी रखा जाएगा)। संदर्भ साफ़ करना उस समस्या से बच जाएगा।
यदि vb.net में लिखी गई कक्षा में "एवेन्ट्स वेरिएबल्स" है, तो उन्हें किसी भी समय ऑब्जेक्ट रखने वाले ऑब्जेक्ट को बेकार हो जाना चाहिए (उन्हें कुछ भी सेट नहीं किया जाना चाहिए)। एक वर्ग को कचरा-संग्रह नहीं किया जा सकता है, जबकि इसमें "एवेवेंट्स वेरिएबल" में लाइव ऑब्जेक्ट का संदर्भ होता है। यदि उदा। एक गणक के पास एक अंतर्निहित संग्रह के लिए "WithEvents" संदर्भ होता है (उदाहरण के लिए यदि संग्रह बदल जाता है तो यह घटनाएं प्राप्त कर सकता है) और इसका निपटान हैंडलर अंतर्निहित संग्रह के संदर्भ को स्पष्ट नहीं करता है, तो गणनाकर्ता को तब तक जीवित रखा जाएगा अंतर्निहित संग्रह है। यदि संग्रह कई बार गिनती है, तो यह एक विशाल स्मृति रिसाव हो सकता है।
जेआईटी अनुकूलक बस कथन को हटा देता है। –
@ हंस, नाइटपिक: यह "सामानों" में कोड पर निर्भर करता है। यदि स्थानीय सूची को बंद या पुनरावर्तक में उठाया जाता है तो रेखा बनी रहती है। – JaredPar
@ जेरेड: मुझे ऐसा नहीं लगता है, मूल्य ऑटो-जेनरेटेड क्लास के एक क्षेत्र में कॉपी किया जाएगा। –