मैं समझता हूं कि नेट फ्रेमवर्क दिशानिर्देशों के अनुसार घटनाओं का उपयोग कैसे करें, लेकिन इस पैटर्न का उपयोग करने के क्या फायदे हैं?नेट दिशानिर्देशों के अनुरूप घटनाओं के क्या फायदे हैं?
http://msdn.microsoft.com/en-us/library/aa645739%28VS.71%29.aspx:
.नेट फ्रेमवर्क दिशा निर्देशों संकेत मिलता है कि प्रतिनिधि प्रकार की एक घटना के लिए इस्तेमाल किया दो पैरामीटर, एक "वस्तु स्रोत" पैरामीटर घटना के स्रोत का संकेत लेना चाहिए, और एक "ई "पैरामीटर घटना के बारे में कोई अतिरिक्त जानकारी encapsulates। का प्रकार "ई" पैरामीटर EventArgs क्लास से प्राप्त होना चाहिए। घटनाओं के लिए जो किसी भी अतिरिक्त जानकारी का उपयोग नहीं करते हैं, .NET Framework में पहले से ही एक उपयुक्त प्रतिनिधि प्रकार परिभाषित किया गया है: EventHandler।
ए) मुझे पहले ऑब्जेक्ट के रूप में "ऑब्जेक्ट स्रोत" मान का उपयोग करने में कुछ लाभ दिखाई देते हैं क्योंकि ऐसी स्थितियां हैं जहां कई ऑब्जेक्ट्स एक ही विधि में अपनी घटनाओं को सेट कर सकते हैं। इस प्रकार, यदि उदाहरण के लिए हमारे पास 10 ऑब्जेक्ट्स हैं और यदि सभी 10 ऑब्जेक्ट्स ईवेंट इवेंट हैंडलर एम पर सेट करते हैं, तो एम के अंदर हम इवेंट कॉल के आरंभकर्ता की पहचान करने के लिए "ऑब्जेक्ट प्रेषक" पैरामीटर मान का उपयोग कर सकते हैं।
- लेकिन जहां तक मैं कह सकता हूं, "ऑब्जेक्ट स्रोत" पैरामीटर केवल तभी उपयोगी होता है जब ईवेंट किसी इंस्टेंस विधि के अंदर उठाया गया हो। इस प्रकार, यदि स्थैतिक विधि के अंदर घटना को उठाया गया था, तो "ऑब्जेक्ट स्रोत" पैरामीटर का कोई उपयोग नहीं है ?!
बी) क्या नेट फ्रेमवर्क दिशानिर्देशों के अनुसार घटनाओं का उपयोग करने के अन्य लाभ हैं?
ग) जो कुछ भी लाभ हो सकता है, इसलिए वे बाहर वजन करने के लिए
- एक वस्तु EventArgs से व्युत्पन्न में वांछित तर्क डाल करने के लिए एक अतिरिक्त कोड लिखने की मेहनत नहीं होगा
- एक अतिरिक्त बारे में EventArgs से प्राप्त ऑब्जेक्ट से जानकारी निकालने के लिए इवेंट हैंडलर के अंदर कोड?
आप
मुझे लगता है कि, 'CancelEventArgs' उल्लेख करने के लिए और साथ ही अच्छा होगा क्योंकि यह उल्लेख पैटर्न का एक उपयोगी हिस्सा हो सकता है। – stakx