MSDN से:सी # प्रतिनिधियों और विधि हस्ताक्षर
कोई भी पद्धति जो प्रतिनिधि के हस्ताक्षर, वापसी प्रकार और मापदंडों के होते हैं जो मेल खाता है, प्रतिनिधि को सौंपा जा सकता है।
तो यह कैसे संभव है:
public delegate void AlarmEventHandler(object sender, EventArgs e);
public event AlarmEventHandler Alarm;
protected virtual void OnAlarm(EventArgs e)
{
AlarmEventHandler handler = Alarm;
if (handler != null)
{
// Invokes the delegates.
handler(this, e);
}
}
प्रतिनिधि AlarmEventHander
और घटना AlarmEventHandler
अलग हस्ताक्षर अभी तक handler
Alarm
को सौंपा जा सकता है।
शायद मैं कुछ हद तक प्रतिनिधियों को गलत समझ रहा हूं, और अगर कोई समझा सकता है कि मैं कहां गलत हो रहा हूं तो मैं बहुत आभारी हूं।
मुझे लगता है कि आपने अपने कुछ प्रतीक नामों को भ्रमित कर दिया है। उपर्युक्त कोड में, प्रतिनिधि को 'अलार्मइवेंट हैंडलर' कहा जाता है और घटना, जो एक ही प्रकार की है, को 'अलार्म' कहा जाता है। चूंकि वे एक ही प्रकार के हैं, असाइनमेंट में कोई समस्या नहीं है। मुझे लगता है कि भ्रमित करने वाला क्या है आप 'ऑन अलार्म' विधि है जो शायद एक अलग प्रतिनिधि प्रकार के साथ एक अलग घटना का जवाब देने के लिए दिखाई देता है। –
देखें: फ़ील्ड जैसी घटनाएं। http://msdn.microsoft.com/en-us/library/aa664455(v=vs.71).aspx – Ani
मुझे यहां समस्या दिखाई नहीं दे रही है। प्रकार बिल्कुल मेल खाते हैं (दोनों 'अलार्मइवेंट हैंडलर' हैं), इसलिए कोई एक दूसरे को असाइन करने में सक्षम होने की उम्मीद करेगा। – finnw