首页 > 解决方案 > 事件为代表提供封装。为什么要封装?

问题描述

我读过事件为代表提供封装。当我们在委托中添加方法引用以及在事件中为方法添加引用时,内部会发生什么?

我可以看到这两种情况下的代码工作相同。为什么我们需要封装委托?我的代码只能与代表一起使用。对于我在下面分享的两种情况,我的代码工作相同。

情况1:

public delegate void PerformedCalculationEventHandler(object source, EventArgs args);

public PerformedCalculationEventHandler PerformedCalculation = null;

案例二:

public delegate void PerformedCalculationEventHandler(object source, EventArgs args);

public event PerformedCalculationEventHandler PerformedCalculation;

标签: c#eventsdelegates

解决方案


事件确实将委托包装成一对添加 (+=) 和删除 (-=)。现在主要意味着类代码并且只有类代码可以引发或清理已注册委托的集合。

没有它,每个人的代码都可以用天知道他们做什么,完全破坏任何可靠性。可靠性是事件不能没有的东西。


推荐阅读