问题标签 [multicastdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
59704 浏览

c# - 简单委托(委托)与多播委托

我浏览了很多文章,但我仍然不清楚我们通常创建的普通委托和多播委托之间的区别。

上面的委托 MyMethodHandler 将调用这两个方法。现在多播委托从何而来。我读过他们可以调用多种方法,但我担心我对委托的基本理解是不正确的。

0 投票
4 回答
1209 浏览

c# - 在 C# 中是否有一个不是 MulticastDelegate 的委托?

我认为答案是否定的?如果没有,我们为什么要Delegate分班MulticastDelegate?也许又是因为“其他一些 .NET 语言”?

0 投票
3 回答
1671 浏览

c# - 使用 MulticastDelegate 作为参数,同时避免 DynamicInvoke

我有一个MulticastDelegate可以引用具有相同签名的多个(旧版)代表之一。例如:

然后使用这些委托来定义事件:

然后我有一个方法,它接受MulticastDelegate我用来做一些常见检查的方法:

从定义事件的类的其他方法中调用它:

有没有更简洁的方法来避免 DynamicInvoke?

0 投票
1 回答
1274 浏览

c# - 为什么委托类型派生自 MulticastDelegate 类为什么不直接派生自 Delegate 类?

我有一个关于委托类型的非常基本的问题。我比较了对象浏览器中的成员DelegateMulticastDelegate类,但在MulticastDelegate.

我还注意到Delegate该类具有GetInvocationList虚拟方法。所以我假设这个Delegate类应该有能力保存对多个方法的引用。如果我的假设是正确的,我想知道为什么不直接从Delegate类而不是MulticastDelegate类派生自定义委托类型。

不知道我在这里缺少什么。请帮助我理解其中的区别。

0 投票
3 回答
2933 浏览

c# - 如何在 C# 中处理多播委托中的异常?

我得到了一些通过多播委托调用的代码。

我想知道如何赶上并管理那里提出的任何异常,而这目前还没有得到管理。我无法修改给定的代码。

我一直在环顾四周,发现需要调用 GetInvocationList() 但不确定这是否有帮助。

0 投票
1 回答
2413 浏览

c# - new KeyEventHandler(Form1_KeyDown) 和 Form1_KeyDown 的区别

在 Windows 窗体应用程序中,您可以像这样注册事件处理程序:

然后像这样取消注册相同的处理程序:

对我来说这似乎很奇怪,因为我希望 -= 需要最初注册的相同处理程序,而不是相同签名的第二个新处理程序。但根据经验,我知道这是可行的。这使我认为这是一个特例,实际上

基于这个理论,我经常重写我的代码来注册和注销这样的事件:

这安全吗?或者这会产生一些我没有意识到的意外副作用?

0 投票
3 回答
1721 浏览

c# - 在 MulticastDelegate 上调用 BeginInvoke?

根据Jon Skeet的说法,“您只能在具有单个目标调用的委托上调用 BeginInvoke。”

这是为什么?真正的原因是什么?

注意:为了澄清(并且因为我犯了这个错误),我说的BeginInvoke是代表,而不是控制。

0 投票
2 回答
3735 浏览

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

多播委托优于单播委托什么时候有用?

我经常使用委托,主要是与 C# lambdas 结合使用,但我从未有过使用 C# 委托的多播方面的冲动,即我从未想过将多个委托组合在一个委托中。因此,我很好奇在何种情况下多播委托是有用的——我只能想到一些示例,在这些示例中,您可以通过其他方式轻松实现该功能,例如链接委托或将它们放入列表中。

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

0 投票
0 回答
230 浏览

c# - 委托和多播委托之间的区别?

可能重复:
简单委托(委托)与多播委托

Delegate我想知道类和类之间有什么区别MulticastDelegate?C# 中的代表总是多播,对吗?因为委托可以包含多个指向方法的指针。

而且我还想知道delegate关键字与Delegate类的关系。

有人可以更详细地解释一下吗?

0 投票
3 回答
1495 浏览

delphi - Delphi中的信号和插槽实现?

Delphi 是否存在用于事件分派的信号和槽机制的实现?