C# delegate and event

真是的,这个东西看了不用,一段时间后就忘了。

delegate相当于函数指针,可以把其他函数加入到delegate实体中,这样用调用delegate实体来实现对所加入函数的调用。

比如

public delegate deleTest(string name);

可以deleTest test = new deleTest(testFun);把testFun挂到test上。

其中testFun函数的签名要和deleTest的签名一致。

然后test(“dear”);就可以调用testFun()了。

 

事件则是特殊签名的delegate.

public delegate void EventHandler(object sender, System.EventArgs e);


而event呢,则是一个delegate的list,可以让很多delegate挂在上面,这样时间发生的时候,就可以调用所有挂在event上面的函数了。

一般会写一个event调用函数来保护event的触发。如

protected void OnTestEvent(System.EventArgs e)

{

 if(testevent!=null) testevent(this,e);

}

 

posted @ 2009-01-07 18:02  Rossi  阅读(287)  评论(0编辑  收藏  举报