问题标签 [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.
c# - 简单委托(委托)与多播委托
我浏览了很多文章,但我仍然不清楚我们通常创建的普通委托和多播委托之间的区别。
上面的委托 MyMethodHandler 将调用这两个方法。现在多播委托从何而来。我读过他们可以调用多种方法,但我担心我对委托的基本理解是不正确的。
c# - 在 C# 中是否有一个不是 MulticastDelegate 的委托?
我认为答案是否定的?如果没有,我们为什么要Delegate
分班MulticastDelegate
?也许又是因为“其他一些 .NET 语言”?
c# - 使用 MulticastDelegate 作为参数,同时避免 DynamicInvoke
我有一个MulticastDelegate
可以引用具有相同签名的多个(旧版)代表之一。例如:
然后使用这些委托来定义事件:
然后我有一个方法,它接受MulticastDelegate
我用来做一些常见检查的方法:
从定义事件的类的其他方法中调用它:
有没有更简洁的方法来避免 DynamicInvoke?
c# - 为什么委托类型派生自 MulticastDelegate 类为什么不直接派生自 Delegate 类?
我有一个关于委托类型的非常基本的问题。我比较了对象浏览器中的成员Delegate
和MulticastDelegate
类,但在MulticastDelegate
.
我还注意到Delegate
该类具有GetInvocationList
虚拟方法。所以我假设这个Delegate
类应该有能力保存对多个方法的引用。如果我的假设是正确的,我想知道为什么不直接从Delegate
类而不是MulticastDelegate
类派生自定义委托类型。
不知道我在这里缺少什么。请帮助我理解其中的区别。
c# - 如何在 C# 中处理多播委托中的异常?
我得到了一些通过多播委托调用的代码。
我想知道如何赶上并管理那里提出的任何异常,而这目前还没有得到管理。我无法修改给定的代码。
我一直在环顾四周,发现需要调用 GetInvocationList() 但不确定这是否有帮助。
c# - new KeyEventHandler(Form1_KeyDown) 和 Form1_KeyDown 的区别
在 Windows 窗体应用程序中,您可以像这样注册事件处理程序:
然后像这样取消注册相同的处理程序:
对我来说这似乎很奇怪,因为我希望 -= 需要最初注册的相同处理程序,而不是相同签名的第二个新处理程序。但根据经验,我知道这是可行的。这使我认为这是一个特例,实际上
基于这个理论,我经常重写我的代码来注册和注销这样的事件:
这安全吗?或者这会产生一些我没有意识到的意外副作用?
c# - 在 MulticastDelegate 上调用 BeginInvoke?
根据Jon Skeet的说法,“您只能在具有单个目标调用的委托上调用 BeginInvoke。”
这是为什么?真正的原因是什么?
注意:为了澄清(并且因为我犯了这个错误),我说的BeginInvoke
是代表,而不是控制。
c# - 在 C# 多播委托中使用多播
多播委托优于单播委托什么时候有用?
我经常使用委托,主要是与 C# lambdas 结合使用,但我从未有过使用 C# 委托的多播方面的冲动,即我从未想过将多个委托组合在一个委托中。因此,我很好奇在何种情况下多播委托是有用的——我只能想到一些示例,在这些示例中,您可以通过其他方式轻松实现该功能,例如链接委托或将它们放入列表中。
特别是,Eric Lippert 在这里的回答给人的印象是即使 C# 团队有时也会忘记代表的多播性。
c# - 委托和多播委托之间的区别?
可能重复:
简单委托(委托)与多播委托
Delegate
我想知道类和类之间有什么区别MulticastDelegate
?C# 中的代表总是多播,对吗?因为委托可以包含多个指向方法的指针。
而且我还想知道delegate
关键字与Delegate
类的关系。
有人可以更详细地解释一下吗?
delphi - Delphi中的信号和插槽实现?
Delphi 是否存在用于事件分派的信号和槽机制的实现?