अगर मैं इस तरह की एक घटना के लिए एक लैम्ब्डा हुक:जीसी कब एक लैम्ब्डा इकट्ठा कर सकता है जो किसी घटना से जुड़ा हुआ था?
static void DoSomething(Control control)
{
control.SomeEvent += StaticMethodThatHandlesEvent;
Control parentControl = control.Parent;
parentControl.Disposed += (sender, args) =>
{
control.SomeEvent -= StaticMethodThatHandlesEvent;
};
}
क्या शर्तों के तहत लैम्ब्डा एकत्र किया जा सकता? यदि माता-पिता नियंत्रण एकत्र किया जाता है तो क्या इसे एकत्र किया जाएगा? क्या माता-पिता नियंत्रण एकत्र किया जा सकता है (माना जाता है कि इसे ठीक से निपटाया गया है और मेरे कोड में इसका कोई संदर्भ नहीं है)?
संपादित करें: पूरा कोड एक स्थिर वर्ग में है। क्या यह प्रासंगिक है?
यह इस बात पर निर्भर करता है कि अनाम प्रतिनिधि कैसे लागू किया जाता है। विशेष रूप से, क्या लैम्ब्डा के शरीर में कोई बंद है? – Dennis
मैंने सवाल तय किया, अब यह मेरे करीबी के करीब है। तो मुझे लगता है कि मेरे पास अज्ञात प्रतिनिधि के अंदर केवल 'नियंत्रण' है। – Martze
उस तरह का अनावश्यक नहीं है? निश्चित रूप से यदि अभिभावक नियंत्रण एकत्र किया जाता है, तो बच्चे ईवेंट हैंडलर प्रतिनिधियों समेत भी होगा। आप वास्तव में क्या हल करने की कोशिश कर रहे हैं? ईवेंट हैंडलर केवल वास्तव में "रिसाव" करते हैं जब घटना अपने हैंडलरों से अधिक समय तक जीवित रहती है - शायद ही कभी 'नियंत्रण' के लिए मामला। – Luaan