2010-06-09 24 views
6

मैंने देखा है लोगों को इस तरह उनकी गतिविधि को परिभाषित:इस घटना को अज्ञात प्रतिनिधि के साथ क्यों घोषित किया गया है?

public event EventHandler<EventArgs> MyEvent = delegate{}; 

किसी व्याख्या कर सकते हैं कि यह कैसे इसके बिना यह परिभाषित करने से अलग है? क्या यह घटना को उठाते समय शून्य के लिए जांच से बचने के लिए है?

+0

अगर मैं गलत नहीं हूँ, इस के लिए सही शब्द "गुमनाम विधि" नहीं "गुमनाम प्रतिनिधि" है। –

उत्तर

10

आप यह मिल गया - जोड़ने खाली प्रतिनिधि आप इससे बचने कर सकते हैं:

public void DoSomething() { 
    if (MyEvent != null) // Unnecessary! 
     MyEvent(this, "foo"); 
} 
2

यह घोषणा सुनिश्चित करता है कि MyEvent कभी भी शून्य नहीं होता है, हर बार घटना को निकाल दिए जाने पर अतिरिक्त खाली प्रतिनिधि को निष्पादित करने की लागत पर हर समय शून्य की जांच करने के कठिन और त्रुटि-प्रवण कार्य को हटाया जाता है।

संबंधित मुद्दे