c# - 事件为代表提供封装。为什么要封装?
问题描述
我读过事件为代表提供封装。当我们在委托中添加方法引用以及在事件中为方法添加引用时,内部会发生什么?
我可以看到这两种情况下的代码工作相同。为什么我们需要封装委托?我的代码只能与代表一起使用。对于我在下面分享的两种情况,我的代码工作相同。
情况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;
解决方案
事件确实将委托包装成一对添加 (+=) 和删除 (-=)。现在主要意味着类代码并且只有类代码可以引发或清理已注册委托的集合。
没有它,每个人的代码都可以用天知道他们做什么,完全破坏任何可靠性。可靠性是事件不能没有的东西。
推荐阅读
- heroku - Heroku 空闲,因为配额已用完
- android - 颤动中TabBar视图中的传递方法
- html - 如何在 Angular 子组件选择器之间传递内容
- cookieconsent - 删除 ngx-cookieconsent 创建的 cookie 策略弹出窗口
- service-worker - Angular 7 - 服务工作者不会注册
- android-studio - 从 Spek 1.x 迁移到 Spek 2.x 错误
- azure - 我们能否根据客户在 Azure 中维护应用程序洞察力?
- java - 考虑到整数之一存在于极端端,Java程序获取字符串中存在的整数的总和
- r - 使用 lapply 时强制表格具有相同的尺寸
- ios - 如何在 iOS swift 应用中添加 Material Design Button?