C# · 12月 27, 2021

为什么在c#中需要部分方法?事件可以用来实现相同的目标吗?

我正在读书“Apress Pro LINQ:C#中的语言集成查询”,我发现了部分方法,但我真的不明白他们需要什么.

我认为书中的例子(改变之前和之后的属性)可以使用事件来实现.那么任何解释?

解决方法 是的,您可以使用部分方法实现与事件类似的效果.部分方法实际上只是让代码生成器(主要是设计者)为非生成代码生成钩子的一种方法.事件可以填补这个角色.

然而,对于事件的部分方法尤其有优势

>如果没有实现,则部分方法调用将从生成的IL中完全删除.这不能用事件来完成.>部分方法的设计是解决有1个提供者和1个消费者的问题.活动旨在为具有N个消费者的1个供应商建模,并具有这种设计带来的开销>没有订购的问题(谁先去).使用事件,您需要确保在设计者生成引发事件的代码之前运行事件的代码.如果说设计师生成一个构造函数,这并不总是可能的.部分方法没有这样的问题.