[英]Why no constraint on EventHandler<TEventArgs>?
我只是偶然發現(編譯時我認為不會編譯的東西)EventHandler 並不局限於System.EventArgs類型。
這是內聯文檔:
#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);
}
這是文檔和實現之間的不匹配嗎?
我問,因為我很好奇。 這根本不是抱怨。
在.net 4.5中刪除了類型約束。
這是.net 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.