c 委託 和 事件 的區別

2021-07-24 11:35:29 字數 430 閱讀 7752

據說這是乙個面試題。我剛開始學的時候不怎麼理解,只簡單的認為委託是可以將方法作為引數傳入另乙個方法中的,當你的引數需要乙個方法的時候就可以使用委託。

委託是一種特殊的資料型別,事件是物件,本來沒有可比性,又偏偏喜歡這樣問。。

但是,反編譯之後會發現事件是私有型別的委託,並且有兩個方法,add,remove方法。

因此事件還只能供內部呼叫,而且,add方法不會將之前的呼叫覆蓋,所以事件是相對安全的。

如下**:

class program

}class say

}//反編譯後

C 事件和委託區別

很多人以為有了委託還要事件幹嘛,其實很重要,如果沒有了事件,那麼你的 觸發時機可能會被別人修改,造成巨大的漏洞。下面,我會簡略說明一下問題所在。委託,宣告後,可以直接例項,例如 internal delegate void dothingdelegate 例項 internal dothingdel...

C 中委託和事件的區別

大致來說,委託是乙個類,該類內部維護著乙個字段,指向乙個方法。事件可以被看作乙個委託型別的變數,通過事件註冊 取消多個委託或方法。本篇分別通過委託和事件執行多個方法,從中體會兩者的區別。通過委託執行方法 class program public class examplevoid print str...

C 中委託和事件的區別

大致來說,委託是乙個類,該類內部維護著乙個字段,指向乙個方法。事件可以被看作乙個委託型別的變數,通過事件註冊 取消多個委託或方法。本篇分別通過委託和事件執行多個方法,從中體會兩者的區別。class program public class example void print string str ...