2009-08-03 7 views
5

मैं सोच रहा था कि कोई मुझे किसी ईवेंट में विधि जोड़ने के लिए + = ऑपरेटर के बराबर कच्चे कोड बता सकता है। मैं उत्सुक हूं कि यह तकनीकी दृष्टिकोण से कैसे काम करता है।किसी घटना के लिए + = असाइनमेंट के बराबर कोड

उत्तर

10

एक event "add" और "निकालें" सहित विधियों के एक सेट को परिभाषित करता है (उसी तरह एक संपत्ति "प्राप्त" और "सेट" परिभाषित करती है)। यह प्रभावी ढंग से है:

obj.add_SomeEvent(handler); 

आंतरिक रूप से, घटना कुछ भी कर सकती है; 2 आम मामलों देखते हैं: एक प्रतिनिधि क्षेत्र के साथ

  • घटनाओं ("क्षेत्र की तरह" घटनाओं सहित)
  • EventHandlerList कार्यान्वयन
एक प्रतिनिधि के साथ

, यह प्रभावी रूप से Delegate.Combine उपयोग करता है:

handler = Delegate.Combine(handler, value); 

EventHandlerList के साथ एक प्रमुख वस्तु है:

Events.AddHandler(EventKey, value); 
संबंधित मुद्दे