gpt4 book ai didi

.net - 如何在 .NET 中分配事件

转载 作者:行者123 更新时间:2023-12-04 03:34:58 24 4
gpt4 key购买 nike

我刚刚意识到我不完全理解为什么在 .NET 中使用 += 符号分配事件。

昨天当我需要删除一个事件并且没有想到我在做的时候,我发现了这一点

someobject.onsomeevent += null

认为这只会删除我之前分配的事件。

经过一番调查,我发现我必须
someobject.onsomeevent -= someeventmethod;

弄清楚这一点后,我意识到我不明白在 .NET 中如何分配事件方法。

所以我有几个问题:

首先,这是否意味着我可以做到
someobject.onsomeevent += someeventmethod;
someobject.onsomeevent += someeventothermethod;

如果是,当 在某些事件 发生时它们都会被击中,并按照指定的顺序或同时发生?

此外,如何确定哪些事件方法已分配给 someobject.onsomeevent ?

其次,有没有办法将事件方法保存在某个类中,将它们从 someobject.onsomeevent 中删除,并在其他通常会触发事件的过程完成后重新分配它们?

最佳答案

关于您的第一个问题:默认情况下您会获得多播行为。也就是说,如果您有多个处理程序,则默认情况下事件处理程序将按顺序调用(除非其中一个引发异常)。请注意,您可以更改 add ( += ) 和 remove ( -= ) 做一些不同于默认行为的事情。

Jon Skeet 有一个页面解释 delegates and events in C#您可能想阅读。

关于.net - 如何在 .NET 中分配事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com