C#中委託和事件的區別


在這篇文章中,我們將瞭解C#中委託和事件的區別。

委託

  • 它可以使用'delegate'關鍵字宣告。

  • 它是一個函式指標。

  • 它在執行時儲存一個或多個方法的引用。

  • 它是一個獨立的關鍵字。

  • 它不依賴於事件。

  • 它包含Combine()和Remove()方法,可以幫助將方法新增到呼叫列表中。

  • 它可以作為引數傳遞給方法。

  • 可以使用'='運算子賦值單個方法。

  • 可以使用'+='運算子將多個方法賦值給委託。

事件

  • 它可以使用'event'關鍵字宣告。

  • 它可以定義為依賴於委託的通知機制。

  • 它依賴於委託。

  • 如果沒有委託,它就無法建立。

  • 可以理解為委託例項的包裝器。

  • 這有助於防止委託的使用者重置委託及其呼叫列表。

  • 它只允許新增或刪除呼叫列表中的目標。

  • ‘EventInfo’類檢查事件並幫助繫結事件處理程式。

  • 這些處理程式包括AddEventHandler()和RemoveEventHandler()等方法,分別用於向呼叫列表中新增和刪除方法。

  • 事件可以被觸發,但不能作為引數傳遞給方法。

  • 不能將'='運算子與事件一起使用。

  • 可以使用'+='和'-='運算子與事件一起使用,分別新增或刪除事件處理程式。

  • 這些方法會在內部呼叫AddEventHandler和RemoveEventHandler等方法。

更新於:2021年3月24日

1K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告