के वहाँ मान लेते हैं के लिए एक प्रतिनिधि बनाने के लिए कैसे एक तरीका है जिसके तर्क के परिवर्तनशील लेता हैतर्कों की चर संख्या के साथ एक लक्ष्य
Action<int, int> someAction += (a, b) => Target(a, b);
वहाँ गतिशील इस लैम्ब्डा अभिव्यक्ति बनाने के लिए घटना के किसी भी प्रकार के हैंडलर संलग्न करने के लिए सक्षम होने के लिए एक संभावना है: एक लैम्ब्डा अभिव्यक्ति बनाने? कुछ की तरह:
someAction += CreateDelegate(typeof(someAction), Target);
मैं Delegate.CreateDelegate
का उपयोग करने की कोशिश की, लेकिन यह लक्ष्य तर्कों की ठोस सूची के साथ एक तरीका प्रदान करने की उम्मीद है। मुझे लगता है कि Expression.Lambda
के साथ यह संभव होना चाहिए लेकिन अभी के लिए मुझे कोई सफलता नहीं मिली है। आप एक विचार है?
संपादित कार्रवाई और हैंडलर को
नाम बदलकर घटना को लक्षित करने के।
घटनाक्रम निश्चित रूप से पता चलेगा कि वास्तव 2 पैरामीटर:
इस आधार पर मैं एक खुद प्रतिनिधि कारखाना बनाया प्रेषक और तर्क। –
@ हेनक होल्टरमैन आईएनएचओ कार्यक्रम भी क्रियाएं हो सकती हैं। तर्क सीधे पास करना संभव है और आपको उन्हें EventArgs objec में पैक करने की आवश्यकता नहीं है। और आप प्रेषक ऑब्जेक्ट को हैंडलर में कितनी बार उपयोग करते हैं? –