C# “我能/应该吗?”;“分享”;通过使其同时绑定静态和实例来创建事件?
我有一个“管道”系统。有一种类型:C# “我能/应该吗?”;“分享”;通过使其同时绑定静态和实例来创建事件?,c#,events,event-handling,C#,Events,Event Handling,我有一个“管道”系统。有一种类型:Pipeline,它可以实例化,然后在各种数据上执行 var myPipeline = new Pipeline(); myPipeline.Execute("something"); var myOtherPipeline = new Pipeline(); myOtherPipeline.Execute("something else"); 我想添加一个OnExecuted事件,它将在执行管道时引发。但我想将其添加到管道类型中,并添加到管道的单独实例化中
Pipeline
,它可以实例化,然后在各种数据上执行
var myPipeline = new Pipeline();
myPipeline.Execute("something");
var myOtherPipeline = new Pipeline();
myOtherPipeline.Execute("something else");
我想添加一个OnExecuted
事件,它将在执行管道时引发。但我想将其添加到管道类型中,并添加到管道的单独实例化中。因此,作为静态事件和实例事件
- 静态事件:在管道的任何实例化中执行任何管道时运行
- 实例事件:在执行管道的特定实例化时运行
和myPipeline.OnPipelineExecuted
myOtherPipeline.OnPipelineExecuted
(?这个名字听起来很可怕)Pipeline.OnAnyPipelineExecuted
请参见第一条和第二条评论。这不是一个好主意。为了避免额外的几行实现代码,可能需要一些架构技巧。为什么需要静态事件?严格地说,你不能重复使用这个事件,你需要两个事件……我在想……我想你是对的。我的意思是,如果在整个代码中有十几个管道实例,那么静态事件肯定比将同一个处理程序绑定到每个管道更方便……但也不是那么方便。见鬼,我可以为它编写一个工厂方法,每次生成相同的预定义管道。