सी # कोड में, मेरे पास तीन ऑब्जेक्ट हैं A , B और सी । ए और बी प्रत्येक सी के संदर्भ को पकड़ता है जब A को नष्ट कर दिया जाता है तो मैं B से C के संदर्भ को भी हटाए जाने के लिए चाहूंगा ताकि C कचरा कलेक्टर द्वारा नष्ट किया जा सकता है
क्या इसे मैन्युअल रूप से B से हटाए बिना ऐसा करने का कोई तरीका है? ( सी से सी से हटाए जाने के संदर्भ में C के डिस्ट्रक्टर को नहीं कहा जाता है, इसलिए यह यहां प्रभावी नहीं है।)
समाधान 1
क्या बी आप में कहीं और से संदर्भित है
समाधान 2
/ P>
आपको बी को एक संकेत भेजना चाहिए जब ए "हटाया गया" होगा। यदि बी को ए से जाना जाता है तो आप ए से बी को संकेत कर सकते हैं। मैं इसके लिए एक पैटर्न का उपयोग करेगा
समाधान 3
सीधे सी से संदर्भित करने के बजाय , आप सी से निकलने के लिए बी से वीक रेफरेंस का उपयोग कर सकते हैं।
Comments
Post a Comment