我們都知道delegate與C++中的函數(shù)指針類似胀溺,實(shí)現(xiàn)了將函數(shù)作為參數(shù)進(jìn)行傳遞。而添加了event關(guān)鍵字后皆看,編譯器會(huì)自動(dòng)為其添加add, remove兩個(gè)方法仓坞,對(duì)應(yīng)于+=和-=操作。
event更偏向于對(duì)外
event更多的體現(xiàn)出一種“對(duì)外暴露接口”的思想腰吟,在類的內(nèi)部event與delegate是一樣的无埃,而在類的外部,對(duì)event只可以執(zhí)行+=和-=操作毛雇,也就是類外部只能注冊(cè)或注銷事件嫉称,而不能執(zhí)行賦值操作。因此灵疮,相比delegate澎埠,使用event的好處是可以避免外界某個(gè)類A對(duì)delegate的賦值,導(dǎo)致類B注冊(cè)的事件被覆蓋掉始藕。