看板 C_Sharp 關於我們 聯絡資訊
看了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