gpt4 book ai didi

c# - 如何获得事件的订阅者?

转载 作者:IT王子 更新时间:2023-10-29 04:16:14 25 4
gpt4 key购买 nike

我需要将一个事件的订阅者复制到另一个事件。我可以获得事件的订阅者(例如 MyEvent[0] 返回委托(delegate))吗?

如果这不可能,我将使用添加访问器将委托(delegate)添加到列表中。这是最好的解决方案吗?

最佳答案

C# 事件/委托(delegate)是多播的,因此委托(delegate)本身是一个列表。从类(class)内部,要获得个人来电者,您可以使用:

if (field != null) 
{
// or the event-name for field-like events
// or your own event-type in place of EventHandler
foreach(EventHandler subscriber in field.GetInvocationList())
{
// etc
}
}

但是,要一次赋值,只需使用 += 或直接赋值:

SomeType other = ...
other.SomeEvent += localEvent;

关于c# - 如何获得事件的订阅者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572647/

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