委托這個(gè)東西不是很好理解,可是工作中又經(jīng)常用到,你隨處可以看到它的身影,真讓人有一種又愛又恨的感覺,我相信許多人被它所困擾過(guò)。
一提到委托,如果你學(xué)過(guò)C語(yǔ)言,你一定會(huì)馬上聯(lián)想到函數(shù)指針。
什么是委托?委托是C#中類型安全的,可以訂閱一個(gè)或多個(gè)具有相同簽名方法的函數(shù)指針。委托可以把函數(shù)做為參數(shù)傳遞,其實(shí)際意義便是讓別人代理你的事情。委托可以看做是函數(shù)的指針,整數(shù)可以用整數(shù)變量指向它,對(duì)象可以用對(duì)象變量指向它,
函數(shù)也可以用委托變量指向它。我們可以選擇將委托類型看做只定義了一個(gè)方法的接口,而委托的實(shí)例可以看做是實(shí)現(xiàn)了那個(gè)接口的一個(gè)對(duì)象。
使用委托,必須滿足4個(gè)條件:
聲明委托類型;
必須有一個(gè)方法包含了要執(zhí)行的代碼;
必須創(chuàng)建一個(gè)委托實(shí)例;
必須調(diào)用(invoke)委托實(shí)例。
委托的申明
聲明委托的方式:delegate 返回值類型 委托類型名(參數(shù))
委托的申明和接口方法的申明基本上一致,只是在返回類型關(guān)鍵字的前面多了一個(gè)delegate關(guān)鍵字。