亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c#中的MultiCast委托

c#中的MultiCast委托

C#
飲歌長嘯 2022-10-23 15:37:15
當我們使用多播委托時,只返回最后一個方法值。我們是否有任何實際場景需要執行所有方法,但只返回最后一個方法值,就像多播委托所做的那樣。事件和多播委托之間是否有任何關系?如果是,它們是如何聯系的?謝謝你。
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

事件和多播委托之間有什么關系嗎?

在 C# 中,每個委托聲明都會生成一個多播委托。事件實際上是內部的兩個方法,調用addremove帶有委托參數的訪問器。他們的意思是添加/刪除訂閱者(實際上更改了底層的多播委托實例)。

我們是否有任何實際場景需要執行所有方法但只返回最后一個方法值,就像多播委托所做的那樣?

不,這實際上應該避免。這就是為什么框架中沒有非空事件。當使用公共事件時,我們可以假設它們有多個訂閱者。

對于類似的問題(如何返回每個訂閱者的結果),我不會重復我之前的回答,但它也可能值得檢查:如何使用訂閱了 2 種方法的字符串委托

另一方面,當委托實例僅用作回調(例如方法參數)時,它們通常是非空的(例如Func<...>委托系列)。雖然從技術上講,它們也是多播代表,但預計它們不會有多個目標。這些通常由一些 lambda 表達式 ( () => DoSomething()) 實例化,在這種情況下,它們總是只有一個目標。


查看完整回答
反對 回復 2022-10-23
  • 1 回答
  • 0 關注
  • 84 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號