作者QQ29 (我愛阿蓉)
看板C_Sharp
標題[問題] event 和 delegate
時間Thu May 13 12:38:51 2010
看了Event的使用
和delegate使用
我卻對delegate和event感到很模糊
我在想用C的角度 一般 要寫callback function 就用function pointer去指向function
後
再適當時機幫她呼叫
這點 使用delegate就做得到.....我還是無法理解event和delegate最重要的差異在哪
使用時機....
C++是比較麻煩 要指向class的non static function要用pointer to member
但似乎C#完全沒管這些 直接class.Function就可以傳給delegate了
另外想問個小問題
event的sender 假如 有個subscriber 和兩個不同class內的event註冊
當event發生 subscriber的function被呼叫了 sender進來
我怎麼知道 我要cast成哪個sender
相對的....我EventArgs e 我也不知道 e 該cast成什麼耶~?
目前想到這個 目前看書上也沒提到怎麼解決....還是根本沒這個困擾 我誤會了???
第三個問題是
通常event都宣告成public 直接 += new EventHandler( function)
但我想要寫一個SetEvent 的函式
使用者寫 SetEvent( function)
{我裡面幫他 += }
但我不知道
SetEvent(這裡面該填什麼 type耶)
我目前是寫
SetEvent( EventHandler E)
{
MyEvent += new EventHandler(E);
}
但是不給過....該怎麼改呢?
以上
請各位指點 thx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.64.222
※ 編輯: QQ29 來自: 219.87.64.222 (05/13 12:53)
※ 編輯: QQ29 來自: 219.87.64.222 (05/13 13:37)
→ remmurds:請花點時間耐心地把它看完 不然你永遠只會問同樣的問題 05/13 13:38
→ dk3208:第三點改成 MyEvent += E應該就可以 05/13 17:33
→ dk3208:另外推薦一本書Programming .NET Components, 05/13 17:34
→ dk3208:想深入了解.NET必看的一本 05/13 17:34
→ FAITHY:你第三個問題我測過 沒啥問題才對 05/13 18:53