在C#多播委托中使用多播

Ale*_*ink 4 .net c# delegates multicastdelegate

何时通过单播代表进行多播委托是否有用?

我使用代理很多,主要是与C#lambdas结合使用,但我从未感觉到使用C#委托的多播方面的冲动,即我从来没有想过在一个委托中将多个委托组合在一起.因此,我很好奇多播代表在什么样的情况下是有用的 - 我只能想到你可以通过其他方式轻松实现功能的例子,比如链接代表或将它们放在列表中.

特别是,Eric Lippert 在这里给出的答案给人的印象是,即使C#团队有时会忘记代表的多播性.

Fem*_*ref 7

事件是使用MulticastDelegates的主要示例.所以,可能没有意识到,你每天都在使用它们.


Mar*_*ell 7

任何充当事件的事情都是这里的经典答案 - 然后调用者不需要知道谁在监听(只是调用它,如果它是非空的).这是理想的,因为多个操作可以同时订阅 - 例如3个单独的控件观察(数据绑定)到视图模型上的相同属性.

委托作为函数(特别是返回值)的任何情况都是诡计,因为你需要考虑如何处理它 - 采取第一个?持续?骨料?