C# 不带事件参数的EventHandler类型
当我们想要将数据传递给事件订阅者时,我们使用EventArgs(或CustomEventArgs)来实现这一点 .Net提供了一个内置类型EventHandler,它将内置的EventArgs类的实例用作参数 如果我需要通知订阅者某个操作已结束(例如搜索已结束),情况会如何?我甚至不想使用EventArgs,因为它不包含任何内容C# 不带事件参数的EventHandler类型,c#,events,signals,C#,Events,Signals,当我们想要将数据传递给事件订阅者时,我们使用EventArgs(或CustomEventArgs)来实现这一点 .Net提供了一个内置类型EventHandler,它将内置的EventArgs类的实例用作参数 如果我需要通知订阅者某个操作已结束(例如搜索已结束),情况会如何?我甚至不想使用EventArgs,因为它不包含任何内容 是否有一种内置类型用于发送另一个类的信号,而不需要使用空的EventArgs?您可以做以下几件事: 将普通事件与EventHandler和基本EventArg类一起使用
是否有一种内置类型用于发送另一个类的信号,而不需要使用空的EventArgs?您可以做以下几件事:
事件MyDelegateWithoutParams MyEvent一起使用代码>
PS:我想2不符合标准,所以这可能不是最好的主意;)如果你使用普通的
代理
当然你可以做你想做的事情,但是如果你使用事件
我想最好的办法是坚持标准,始终有对象
发送方和事件参数
e
如果您真的不知道从自己的代码触发这些事件时要传递什么,只需传递
EventArgs.Empty
作为第二个参数。我真的建议您在这里使用标准的EventHandler模式,只需传递EventArgs.Empty
;但是,您可以使用操作
作为您真正想要的事件类型-这很不寻常。使用操作(以下答案抄袭自):
宣布:
public event Action EventWithoutParams;
public event Action<int> EventWithIntParam;
这是对OP问题最直接的回答
EventWithoutParams?.Invoke();
EventWithIntParam?.Invoke(123);