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
关键字