使用委托在C#中实现的观察者模式?
有一个问题已经回答是在C#中,是不是已经使用事件实现的观察者模式?
它询问观察者模式是否已在c#中使用事件实现。
虽然我得到了事件和观察者模式,但不是观察者模式真的只是委托和事件是进一步的实现吗?
你是对的。 事件只是一个代理,function略有不同。 所有观察者模式都可以通过代理实现,而无需触及event
关键字。
您可能会对“event”关键字实际带给表的内容感兴趣。
- 事件可以是接口的一部分,而常规的委托字段则不能
- 外部类不能调用事件,但常规代理可以调用
- 事件具有可以覆盖的其他访问者(添加和删除),并为其提供自定义function
编辑: 这是一个很棒的写作 ,在事件和代理之间进行IL代码比较。 (提示:它几乎一样)。