C# IEventHandler可以返回除null以外的任何内容吗?

C# IEventHandler可以返回除null以外的任何内容吗?,c#,asp.net,orchardcms,C#,Asp.net,Orchardcms,我可以用类似于List的东西作为IEventHandler的返回类型吗 我想实现一个事件处理程序接口,如下所示: public interface IMyEventHandler: IEventHandler { public List<MyType> Event (Context context) } 公共接口IMyEventHandler:IEventHandler { 公共列表事件(上下文) } 当我调用方法Event时,它会成功返回列表。但是我没有在调用方方法处收

我可以用类似于
List
的东西作为
IEventHandler
的返回类型吗

我想实现一个事件处理程序接口,如下所示:

public interface IMyEventHandler: IEventHandler
{
    public List<MyType> Event (Context context)
}
公共接口IMyEventHandler:IEventHandler
{
公共列表事件(上下文)
}

当我调用方法
Event
时,它会成功返回列表。但是我没有在调用方方法处收到列表。

通常
EventHandlers
是无效的,因为C#的范例说,如果使用事件的订阅者,返回值将没有明确的含义

例如,单击按钮将能够返回bool,表示成功(或已处理,或…等)

但是,当您有多个活动订户时,可能会变得不清楚,并且对在哪里交付结果有点模糊

因此,你们经常看到的一个小技巧是,在本例中,将你们的列表作为事件的参数传递

事件处理程序可以以事件参数的形式接收此列表,并向其中添加项。如果事件向上冒泡,则其他订阅者也可以使用这些项目


所以底线是:不要从事件处理程序返回值。相反,如果你绝对必须这样做的话:传递一个参数并在那里进行变异。但是,它仍然有一点代码的味道,所以我会寻找其他的选择