關(guān)于c#事件與委托的問(wèn)題。一個(gè)事件只能關(guān)聯(lián)一個(gè)委托嗎?比如Public delegate void call();public event call note; note只和call關(guān)聯(lián)嗎?也就是說(shuō),note 中添加的事件只能是無(wú)參無(wú)返回值的函數(shù)嗎?…那豈不是不靈活了很多?
2 回答

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
委托像是一種聲明,類(lèi)似C的 typedef void myfunc();
事件是匹配一種委托的。像是myfunc *func;
#include <stdio.h> typedef void myfunc(); void Something() { printf ( "something1\n" ); } void Something2() { printf ( "something2\n" ); } int main() { myfunc *f=Something; myfunc *f2=Something2; f(); f2(); return 0; } |
一個(gè)委托表示一種函數(shù)類(lèi)型??梢云ヅ涠鄠€(gè)函數(shù)。不一定是沒(méi)返回值的。事件是匹配委托的,委托有返回值事件也可以有。
public delegate int test(); public event test eventtest; |

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
你委托聲明就是void的, 對(duì)應(yīng)的時(shí)間處理就必須是void, 你如果需要返回參數(shù)或者傳入?yún)?shù), 修改一下委托定義就行了
- 2 回答
- 0 關(guān)注
- 139 瀏覽
添加回答
舉報(bào)
0/150
提交
取消