हाँ, आप की जरूरत करने के लिए (*) और आप इस तरह यह सब करने की ज़रूरत:
Object myObject = new Object();
EventHandler handler = (object sender, EventArgs e) => { };
myObject.Event += handler; //Wired
myObject.Event -= handler; //Unwired
एक स्पष्टीकरण के लिए here देखें।
(*)
आप कचरा संग्रहण की वजह से यह सब करने की ज़रूरत नहीं है। यदि आप नहीं चाहते हैं कि ईवेंट आपके हैंडलर को और कॉल करे, तो आपको इसे करने की ज़रूरत है।
अद्यतन:
थोड़ा स्पष्ट करने के लिए:
एकमात्र कारण, क्यों आप एक ईवेंट हैंडलर unwire करना चाहते हैं कि वस्तु ईवेंट हैंडलर को परिभाषित कचरा एकत्र किया जा सकता है।
निम्न उदाहरण के बारे में सोचो:
- आप एक घटना
BlackOut
के साथ एक कक्षा PowerSource
है।
- आप एक वर्ग
LightBulb
कि पर होगा, जब तक बिजली नहीं है के रूप में की है। इसमें एक विधि ConnectToPowerSource
है। इस विधि की आपूर्ति की PowerSource
की BlackOut
घटना का सदस्य बनता।
- आप एक संग्रह है कि प्रकाश बल्ब
अब होता है, बस सूची से एक प्रकाश बल्ब यह कचरा एकत्र प्राप्त नहीं होगा को दूर करने के लिए है क्योंकि PowerSource
अभी भी में LightBulb
उदाहरण के लिए एक संदर्भ रखा है इसके BlackOut
घटना। केवल BlackOut
घटना से LightBulb
पंजीकरण रद्द करने के बाद LightBulb
प्राप्त कचरा एकत्र कर देगा।
स्रोत
2011-06-09 10:37:08
आप स्पष्ट कर सकते हैं कि क्या अपनी समझ है:
आप इस प्रकार इसे हटा सकते हैं? ** (*) ** के लिए – AakashM