मैं जानता हूँ कि बहुत से लोगों कोसदस्यता समाप्त लैम्ब्डा इवेंट हैंडलर ** बंद के साथ **
myButton.Click += (s, e) => MessageBox.Show("Hello World!");
EventHandler HelloWorld = delegate { MessageBox.Show("Hello World!"); };
myButton.Click -= HelloWorld;
myButton.Click += HelloWorld;
का स्पष्ट जवाब के साथ
"कैसे मैं निम्नलिखित सदस्यता समाप्त करें" का सवाल पूछा है
लेकिन क्या मैं बंद करने के लिए लैम्ब्डा का उपयोग कर रहा हूं? मेरी वस्तु AssessmentRationChanged
प्रकार Action
की है कि कहा जाता है एक घटना है, और मैं इसे thusly तारों कर रहा हूँ क्या होगा यदि: इस बात की संभावना मैं पहले से ही कुछ के लिए यह हैंडलर निर्धारित किया है है
foreach (MassFMVUpdateDTO dto in CurrentProperties)
dto.AssessmentRationChanged +=() => setCellColorBasedOnAssessmentRatioValue(dto);
क्या होगा अगर/वस्तुओं के सभी में यह पाश? क्या उन्हें सदस्यता समाप्त करने का कोई तरीका है?
मुझे यकीन है कि मैं प्रतिबिंब का उपयोग कर सकता हूं और हैंडलर को पूरी तरह साफ़ कर सकता हूं, लेकिन क्या कोई क्लीनर तरीका है?
Grrrr। तो शायद मेरे डिजाइन को फिर से काम करें और घटना में एक प्रेषक पास करें? - 'एक्शन '- हमेशा जॉन के रूप में धन्यवाद। –
जॉन कौन है? :) – jgauffin
@Adam: आपने शेष संदर्भ को हमारे लिए यह स्पष्ट करने के लिए पर्याप्त नहीं बनाया है कि आप डिज़ाइन को बदलना चाहते हैं या नहीं। मुझे यकीन नहीं है कि प्रेषक को कैसे गुजरना होगा ... –