在asp.net用戶控件中提升和事件的優點是什麼?舉辦活動的目的是什麼?
回答
引發事件的目的通常是告知代碼中發生或即將發生的事情,以便讓程序的其他部分對此作出反應。通常,事件的設計方式使得引發事件的代碼以相同的方式工作,而不管是否附加任何偵聽器(事件處理程序)。
一個例子是按鈕的點擊事件。當用戶點擊按鈕時,該按鈕將引發一個單擊事件,這將允許任何附加的事件處理程序執行某些操作。但是,如果沒有附加事件處理程序,按鈕不會改變它的行爲(只是沒有發生任何事情)。
雖然大多數事件被觸發通知的東西已經發生,還有一些是爲了告知的東西即將發生提出了一些事件。有時這些事件使用具有讀/寫屬性的EventArgs
類(與在EventArgs
類中更常見的只讀屬性相反),它允許事件偵聽器將數據傳回給事件提升代碼。我不能從頭腦中想出任何良好的asp.net示例,但在winforms世界中,典型的例子是Form.Closing
事件,其中事件處理程序可以設置e.Cancel = true
以阻止表單關閉。
因此,在用戶控件中,只要外部代碼(通常是頁面)對控件中發生的某些事情感興趣時引發事件就會很有用。
要添加到這裏的其他答案,讓我用一個類比來解釋事件。
假設您想每天收到報紙。你可以給報社打電話,通知他們你希望收到他們可能印刷的新報紙 - 你「訂閱」報紙。報紙發送人維護訂閱者的列表 - 應該接收報紙的人。當報紙每天印刷時,如果您在訂閱者名單上,您將收到一份報紙。
現在,假設你有一個對象 - 一個按鈕,例如。假設你想知道該按鈕何時被按下。您「訂閱」事件 - 特別是「OnClick」或「OnPressed」或任何可能以您的使用語言命名的內容。只要用戶點擊按鈕,按鈕就會遍歷其訂閱者列表,並調用提供給每個訂閱者的功能。這些是'事件處理程序'。這些功能是用戶在事件發生時想要調用的功能。用英文,用戶可能會說:「當你按下時,調用MyOnClick()函數。」
事件在許多編程範例中用於處理複雜性 - 事件不需要知道事件處理程序的任何內容,反之亦然。這允許更鬆散的耦合,以及更多模塊化,可重用的代碼。
我建議你閱讀Observer Pattern,因爲這是事件和事件處理程序的基礎。
- 1. Vaadin舉辦活動
- 2. 從Longlistselector獲取項目舉辦活動
- 3. 宣佈活動的目的是什麼?
- 4. 打開子活動舉辦的Android
- 5. 什麼是枚舉用戶的活動目錄所需的安全權限
- 6. MvvmCross:枚舉MvxRequestedByType的目的是什麼?
- 7. 枚舉的目的是什麼?
- 8. 無法施展View.getContext舉辦活動
- 9. 如何舉辦物業變更活動?
- 10. 舉辦活動或返回布爾?
- 11. 你如何在C#中舉辦活動?
- 12. 如何停止在Tkinter舉辦活動?
- 13. Asterisk通過IAX2和SIP舉辦活動
- 14. 什麼是活動狀態
- 15. 這個活動是什麼?
- 16. 如何讓最近舉辦的活動取消之前的活動?
- 17. 什麼是舉辦社區驅動示例網站的好地方?
- 18. 什麼是「枚舉」?
- 19. 活動元素的含義是什麼?
- 20. 什麼是MySQL中的「活動」語句?
- 21. 活動的生命週期是什麼?
- 22. SoundCloud API:活動Feed中的項目限制是什麼?
- 23. 我可以舉辦我自己的活動嗎?
- 24. 你如何從Rhino Mocks的嚴格模擬中舉辦活動?
- 25. 在沒有明確使用KRL的情況下舉辦活動
- 26. 內存泄漏 - android.os.Message舉辦的Android活動
- 27. 有沒有辦法知道激活的QAction是什麼?
- 28. 你怎麼知道主要的啓動活動是什麼?
- 29. 在活動目錄中,mailNickname用於什麼目的?
- 30. 枚舉值是什麼?
如果silky的回答回答了您的問題,您應該將其標記爲已接受(表決下的複選標記) – 2009-08-23 22:49:15