日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用一个简单的例子来演绎事件委托

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用一个简单的例子来演绎事件委托 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇博文,Insus.NET想使用一個超簡單的例子來演繹事件委托。

我們在開發網頁時,剛開始時在網頁的頂部放一個銨鈕(web control),想實現一個功能。


在xxx.aspx.cs:


OK,某一天,此網頁的內容隨時間而增長,出現了滾屏。想在網頁的底再放一個銨鈕,這個銨鈕執行事件跟網頁頂部銨鈕一的事件一樣的。

?


這樣子,不管是點擊按哪一個銨鈕,所執行的事件是一樣的:



也許一開始你并沒有想到onClick的事件名,直接使用銨鈕一的onClick的名稱,而是如下面的寫法:



在xxx.aspx.cs,我們會使用習慣的習慣,拷貝銨鈕一的事件粘貼在銨鈕二的事件里:



呵呵,此時網頁在運行時,點擊按鈕二與點擊銨鈕一執行的是相同的事情。

某一天,你回過頭來Review你寫的代碼,會發現代碼已經冗余了,你會建一個私有方法,把銨鈕一或二的事件代碼粘貼于這個方法內,然后在銨鈕一或二執行這個方法即可。

?

?上面好象沒有看到任何事件委托情形。沒有關系,我們稍改一下xxx.aspx寫法吧,在網頁中,不寫onClick事件,而是在cs中產生:

?

?
然后在xxx.aspx.cs:


此時,網頁運行起來,沒有什么不同。執行事件與效果跟前面動畫演示一樣。

我們再重新看看這個xxx.aspx.cs的代碼:



發現:

protected void Button1_Click(object sender, EventArgs e)

protected void Button2_Click(object sender, EventArgs e)


所執行的代碼完全一樣,只是這個事件名稱不同。

既然一樣,我們就可以跟上面重構方法一樣,定義一個相同的名稱,參照下面五個步驟:




最后再重構一步:



把xxx.aspx.cs所有注釋刪除,此時,我們看到了事件的委托:


轉載于:https://www.cnblogs.com/insus/p/3732075.html

總結

以上是生活随笔為你收集整理的用一个简单的例子来演绎事件委托的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。