作者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)
2F:→ remmurds:请花点时间耐心地把它看完 不然你永远只会问同样的问题 05/13 13:38
3F:→ dk3208:第三点改成 MyEvent += E应该就可以 05/13 17:33
4F:→ dk3208:另外推荐一本书Programming .NET Components, 05/13 17:34
5F:→ dk3208:想深入了解.NET必看的一本 05/13 17:34
6F:→ FAITHY:你第三个问题我测过 没啥问题才对 05/13 18:53