से पाने उपयोग नहीं कर सकते EventHandler<TEventArgs>
के लिए दस्तावेज़ का कहना है:क्यों मैं सिर्फ eventhandler <int> बजाय EventArgs
दूसरा पैरामीटर एक प्रकार EventArgs और आपूर्ति किसी भी फ़ील्ड या गुण घटना धारण करने के लिए की जरूरत से प्राप्त होता है डेटा।
और ऐसा लगता है कि आमतौर पर नेट दस्तावेज़ों में अनुशंसित किया जाता है।
हालांकि यह पता चला है कि मैं जिसके बाद बस ठीक काम करता है कर सकते हैं:
public event EventHandler<int> Panned;
और के रूप में ईवेंट हैंडलर आह्वान:
int value = 10;
if (Panned != null)
{
Panned(this, value);
}
और पर्यवेक्षक की ओर:
subject.Panned += (sender, e) =>
{
Console.WriteLine(e);
};
मेरे लिए यहसे प्राप्त छोटे वर्गों के साथ कोड को कूड़ेदान से बेहतर लगता हैया के रूप में Does .NET have a built-in EventArgs<T>?
तो द्वारा प्रस्तावित कारण है कि यह आवश्यक है कि मैं EventArgs
से EventHandler
सामान्य तर्क के वारिस एक सामान्य EventArgs
आ रही हैं?
यदि आप .NET 4.0 या पुराने 'सार्वजनिक ईवेंट इवेंट हैंडलर पैन का उपयोग करते हैं, तो असफल हो जाएगा। [4.0 में] (https://msdn.microsoft.com/en-us/library/db0etb8x (v = vs.100) .aspx) इसमें एक 'जहां TEventArgs: EventArgs' बाधा थी। उस बाधा को [4.5 में] गिरा दिया गया था (https://msdn.microsoft.com/en-us/library/db0etb8x (v = vs.110) .aspx) –
ओह दिलचस्प। यह जानकर अच्छा लगा। –