2013-04-01 4 views
6

मुझे बस दुर्घटना से पता चला (जब कुछ संकलित किया गया था जिसे मैंने संकलित नहीं किया था) कि EventHandler सिस्टम System.EventArgs के लिए बाध्य नहीं है।इवेंट हैंडलर <TEventArgs> पर कोई बाधा क्यों नहीं है?

#region Assembly mscorlib.dll, v4.0.0.0 
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll 
#endregion 

namespace System 
{ 
    // Summary: 
    //  Represents the method that will handle an event. 
    // 
    // Parameters: 
    // sender: 
    //  The source of the event. 
    // 
    // e: 
    //  An System.EventArgs that contains the event data. 
    // 
    // Type parameters: 
    // TEventArgs: 
    //  The type of the event data generated by the event. 
    [Serializable] 
    public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e); 
} 

इस डॉक्स और कार्यान्वयन के बीच एक बेमेल है:

यहाँ इनलाइन डॉक्स है?

मैं पूछ रहा हूं क्योंकि मैं उत्सुक हूं। यह बिल्कुल कोई शिकायत नहीं है।

+1

मुझे आश्चर्य है अगर आप दृश्य स्टूडियो 2012 (.NET 4.5) के साथ बनाने और बिना .net 4.5 एक मशीन पर इसे चलाने के लिए कोशिश क्या होता है। (2012 बनाम मशीन पर नहीं, इसलिए मैं अभी जांच नहीं कर सकता) – Will

उत्तर

5

प्रकार की बाधा .NET 4.5 में हटा दी गई थी।

यहां नेट 4.5 हस्ताक्षर है। http://msdn.microsoft.com/en-us/library/db0etb8x%28v=vs.110%29.aspx

[SerializableAttribute] 
public delegate void EventHandler<TEventArgs>(
    Object sender, 
    TEventArgs e 
) 

यहाँ .net 4.0 हस्ताक्षर है। http://msdn.microsoft.com/en-us/library/db0etb8x%28v=vs.100%29.aspx

[SerializableAttribute] 
public delegate void EventHandler<TEventArgs>(
    Object sender, 
    TEventArgs e 
) 
where TEventArgs : EventArgs 
+0

यह देखते हुए कि एमएसडीएन में प्रलेखन नहीं बदला गया था, मुझे आश्चर्य है कि अगर हमें यहां मामूली बग मिली है तो –

+0

मुझे लगता है कि यह परिवर्तन जानबूझकर था। वे शायद एमएसडीएन पेज की टिप्पणी को अपडेट करना भूल गए हैं। मुझे यकीन नहीं है कि आप उस तरह की चीज़ कहां रिपोर्ट करते हैं। – Will

+0

साइड नोट: [CA1009] (https://msdn.microsoft.com/en-us/library/ms182133.aspx) चेतावनी या तो नहीं चली गई, इसलिए EventArgs से प्राप्त नहीं होने वाली किसी भी चीज़ का उपयोग करना अभी भी ट्रिगर होगा एक FxCop चेतावनी। –

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