很長一段時間我都覺得事件是個很神奇的東西,今天專門看了下書,發現原來一切都已經被c#封裝好了,如我的winform控制項的單擊事件(click) 雙擊事件(doubleclick),事件是怎麼實現的細節,被封裝在了eventhandler類裡面.我們在用的時候真接用eventhandler委託定義事件就可以了.
如:public event eventhandler myeventtest;//定義乙個事件,該事件要做什麼(別人去做,委託先把事情通知到這裡)用什麼材料(eventhandler中定義的引數)做
myeventtest+=new eventhandler(....)//這裡新增事件發布
比如在這裡觸發事件:
myeventtest(object型別的乙個實際值,eventargs 的乙個值);//這句**就是觸發事件
那事件要做的事情到底是在**做的呢,那就是myeventtest的實現
如:public void amethod(object sender,eventargs e)
得出結論事件無非就是四個步驟:
1,定義乙個委託(delegate)。該委託給出引數型別和反回值型別
2.用1定義的委託宣告乙個事件eventname
3.叫人去做用1的委託宣告的事件2中的eventname 。通常用乙個方法表示,該方法的返回值,與引數型別、引數個數要和委託定義的一至
4.觸發事件,即將2的事件傳遞進具體的引數值
對C 委託及事件委託的理解
委託的宣告 public delegate void mydelegate string str 注1.委託的定義和方法的定義類似,只是在前面加了乙個delegate,但委託不是方法,它是一種型別。是一種特殊的型別,看成是一種新的物件型別比較好理解。用於對與該委託有相 同簽名的方法呼叫。2.委託相當...
C 事件的理解
說實話,事件弄得還是很暈,有待於以後的強化吧,下面是我對事件的一點理解 首先,參見大牛的帖子 網上大牛事件講解 下面我來說一說事件的大致流程 事件委託 事件概述 事件就是當物件或類狀態發生改變時,物件或類發出的資訊或通知。發出資訊的物件或類稱為 事件源 對事件進行處理的方法稱為 接收者 通常事件源在...
理解C 事件
如果做過gui程式開發,可能對上面的描述會比較熟悉。在gui程式中,單擊乙個button會觸發乙個click事件,然後會執行一系列的操作,這一系列的操作就被存放在乙個委託例項中。接下來我們就看看事件。使用委託中的問題 回到前面文章中蘋果和富士康的例子,蘋果將iphone的組裝 包裝和運輸的工作全部委...