मेरे पास एक ऐसा ईवेंट है जिसे वर्तमान में कोई ईवेंट तर्क के साथ परिभाषित नहीं किया गया है। यही है, इवेंटआर्ग भेजता है EventArgs.Empty है।क्या कोई ऐसा ईवेंट होना चाहिए जिसमें कोई तर्क नहीं है, अपने स्वयं के कस्टम EventArgs को परिभाषित करें या बस System.EventArgs का उपयोग करें?
इस मामले में, यह मेरे ईवेंट हैंडलर घोषित करने के लिए के रूप में सरल है:
EventHandler<System.EventArgs> MyCustomEvent;
मैं इस घटना के लिए किसी भी घटना तर्क जोड़ने पर योजना नहीं है, लेकिन यह संभव है कि किसी भी कोड में परिवर्तन करने की आवश्यकता सकता है भविष्य।
इसलिए, मैं अपने सभी कार्यक्रमों को हमेशा एक खाली घटना तर्क बनाने की दिशा में झुका रहा हूं कि System.EventArgs
से इनहेरेटिस, भले ही वर्तमान में कोई ईवेंट तर्क नहीं है। कुछ इस तरह:
public class MyCustomEventArgs : EventArgs
{
}
और फिर मेरी घटना परिभाषा निम्नलिखित हो जाता है:
EventHandler<MyCustomEventArgs> MyCustomEvent;
तो मेरे सवाल यह है: यह मेरे अपने MyCustomEventArgs
परिभाषित करने के लिए बेहतर है, भले ही वह परे कुछ भी नहीं जोड़ता है System.EventArgs
से विरासत में, ताकि घटना तर्क भविष्य में और आसानी से जोड़ा जा सके? या System.EventArgs
लौटने के रूप में स्पष्ट रूप से मेरी घटना को परिभाषित करना बेहतर है, ताकि उपयोगकर्ता के लिए यह स्पष्ट हो कि कोई अतिरिक्त ईवेंट तर्क नहीं है?
मैं अपने सभी कार्यक्रमों के लिए कस्टम इवेंट तर्क बनाने की दिशा में झुका रहा हूं, भले ही ईवेंट तर्क खाली हों। लेकिन मैं सोच रहा था कि क्या दूसरों ने सोचा कि उपयोगकर्ता को यह स्पष्ट करना है कि घटना तर्क खाली हैं बेहतर होगा?
अग्रिम में बहुत धन्यवाद,
माइक
मैं बस इवेंट हैंडलिंग से परिचित हूं। मैं सिर्फ पुष्टि करना चाहता था कि 'EventHandler <ऑब्जेक्ट, MyCustomEventArgs>' एक टाइपो जो 'EventHandler' होना चाहिए? यदि नहीं, तो यह वर्ग कहां रहता है? –
fostandy
हां, अच्छा पिकअप, आप सही हैं, जो पढ़ना चाहिए: 'EventHandler', जिसे मैंने अभी सही किया है। तथ्य यह है कि प्रेषक एक वस्तु है 'EventHandler <> 'वर्ग का उपयोग करते समय निहित है। इस पर एक और लेने के लिए, आप ".NET में इवेंट हस्ताक्षर - एक मजबूत टाइप किए गए 'प्रेषक का उपयोग कर देखना चाहते हैं?" (http://stackoverflow.com/questions/1046016/event-ignature-in-net-using-a-strong-typed-sender), लेकिन यह वैकल्पिक दृष्टिकोण गैर-मानक है, इसलिए हो सकता है कि आप इस मार्ग पर नहीं जाना चाहें एक शुरुआत के रूप में। हालांकि यह दिलचस्प है, और यह बहुत अच्छी तरह से काम करता है। –