C# delegate and event
真是的,這個(gè)東西看了不用,一段時(shí)間后就忘了。
delegate相當(dāng)于函數(shù)指針,可以把其他函數(shù)加入到delegate實(shí)體中,這樣用調(diào)用delegate實(shí)體來(lái)實(shí)現(xiàn)對(duì)所加入函數(shù)的調(diào)用。
比如
public delegate deleTest(string name);
可以deleTest test = new deleTest(testFun);把testFun掛到test上。
其中testFun函數(shù)的簽名要和deleTest的簽名一致。
然后test(“dear”);就可以調(diào)用testFun()了。
?
事件則是特殊簽名的delegate.
public delegate void EventHandler(object sender, System.EventArgs e);
而event呢,則是一個(gè)delegate的list,可以讓很多delegate掛在上面,這樣時(shí)間發(fā)生的時(shí)候,就可以調(diào)用所有掛在event上面的函數(shù)了。
一般會(huì)寫一個(gè)event調(diào)用函數(shù)來(lái)保護(hù)event的觸發(fā)。如
protected void OnTestEvent(System.EventArgs e)
{
?if(testevent!=null) testevent(this,e);
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/climberluoxi/archive/2009/01/07/1371303.html
總結(jié)
以上是生活随笔為你收集整理的C# delegate and event的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中级.NET开发人员
- 下一篇: 将对象序列化与反序列实例