C# 如何订阅作为参数传递给函数的事件?

C# 如何订阅作为参数传递给函数的事件?,c#,events,C#,Events,我试图通过函数向事件添加侦听器 event Action ExampleEvent; void AddListener(Action emitter, Action receiver) { emitter += receiver; } 然后在某个地方我这样称呼它: AddListener(ExampleEvent, () => Console.WriteLine("Example event received")); ExampleEvent?.Invo

我试图通过函数向事件添加侦听器

event Action ExampleEvent;

void AddListener(Action emitter, Action receiver)
{
     emitter += receiver;
}
然后在某个地方我这样称呼它:

AddListener(ExampleEvent, () => Console.WriteLine("Example event received"));

ExampleEvent?.Invoke();

但没有产出。我看不出缺少什么。

你应该像这样使用
ref
关键字

事件动作示例事件;
void AddListener(参考动作发射器、动作接收器)
{
发射器+=接收器;
}
//用法
AddListener(参考ExampleEvent,()=>Console.WriteLine(“接收到的示例事件”);
ExampleEvent?.Invoke();
因为
Action
实例就像指向函数的指针(或指针列表),它们将作为参数按值传递。因此,为了通过引用传递它们,您需要使用
ref
关键字