事件提供对委托的封装。为什么要封装?

时间:2019-07-26 16:49:17

标签: c# events delegates

我已经阅读到事件为委托提供了封装。当我们在委托中添加方法引用以及在事件中添加方法的引用时,内部会发生什么?

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

情况1:

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

public PerformedCalculationEventHandler PerformedCalculation = null;

情况2:

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

public event PerformedCalculationEventHandler PerformedCalculation;

1 个答案:

答案 0 :(得分:0)

事件确实将Delegate封装为一对add(+ =)和remove(-=)。现在主要是意味着类代码和只有类代码可以引发或清除已注册代表的集合。

没有这些,每个人的代码都可以做,上帝知道他们的所作所为,从而完全破坏了可靠性。可靠性是活动离不开的。