5
A
回答
3
這是主要的一致性和版本控制與sender
paramater一如既往System.Object的和args
參數一如既往一個System.EventArgs或其dervied類,你可以改變傳遞給它的寄件人蔘數以及變化EventArgs之後鍵入,不會破壞任何現有的代碼。
整個.NET事件成語被設計用於支持基於組件的開發,其中調用代碼不受組件開發人員與事件的控制。
2
它將來電者與被叫者分開。
3
這是一個很好的問題。異端,但很好。我最近閱讀了一篇博文(我找不到鏈接 - 是否有人有這樣的鏈接),它揭示了你需要總是重寫System.EventArgs以提供良好的事件處理的神話。
我完全遵守慣例和遵守規則,但這是我認爲可以被認爲是可彎曲的 - 如果不能避免的話。每個事件都需要不斷地覆蓋System.EventArgs,這增加了例程的耦合性 - 現在還有一件事需要跟蹤。
擁有一個提供成員的「e」並不比任何有名的參數集更有幫助或更直觀。我不認爲可以派發推薦的System.EventArg模式來贏得這個論據,但是我會和你一起提出這個論點。
RP
4
在C#1.0的約定並沒有做出很大的意義。在C#2.0中,如果存在一定數量的委託差異,則更有意義。
如果您有一個事件處理方法,並不真正關心參數,例如
public void SaveDocument(object sender, EventArgs args)
{
// Save the document here
}
你現在可以使用該方法來訂閱跟隨公約的任何活動,即使實際的發送者或ARG遊戲更嚴格的類型。這意味着您可以對鍵盤事件使用相同的處理程序,單擊按鈕等。
相關問題
- 1. 事件簽名
- 2. .NET事件認識和NullObject模式
- 3. 事件模式(.NET示例請求)
- 4. 使用EventArgs取消.NET中的事件的模式
- 5. 簽名的「.NET」和「OCaml」格式化
- 6. 簽名.NET DLL
- 7. 簽名號碼模式
- 8. 事件存儲中的事件模型或模式
- 9. .net標籤加速鍵事件
- 10. 簽名.NET活動
- 11. 。ViewFinity的Net代碼簽名
- 12. .net開發的簽名板
- 13. .net mvc事件/安排與響應式設計的模板
- 14. JemmmyFX事件模式
- 15. .NET中的XML數字簽名
- 16. .NET中的鍵盤事件
- 17. .NET中的弱事件?
- 18. PowerShell中的.NET事件
- 19. .NET中的事件調度
- 20. C++ CLI NET的形式Ideling事件
- 21. .NET中的企業模式
- 22. 籌集事件的模式
- 23. 委派事件的模式
- 24. 標籤事件中的jQuery onchange事件
- 25. 從Authenticode中獲取時間戳.NET中的簽名文件
- 26. Java中的域事件模式實現?
- 27. PubSub/Observer模式中的排隊事件
- 28. MonoTouch中的弱事件模式
- 29. TinyMCE全屏模式中的事件
- 30. Controller模式的.Net