把公开的 Action 字段改为 event的作用
• public Action 字段:等同于公开的委托变量,任何外部代码都可以使用 = 覆盖它、也可以直接调用(Invoke)它,容易被误写或清空,安全性差。
• public event Action:只允许外部通过 += / -= 订阅或退订;只有声明该事件的类可以触发(调用)这个事件,封装性和安全性更好。
1 // 公开字段(不安全) 2 public static Action RefreshSweepBoDeDataChart; 3 4 // 任意外部代码可以: 5 FreshChartHelper.RefreshSweepBoDeDataChart = null; // 覆盖、清空订阅者 6 FreshChartHelper.RefreshSweepBoDeDataChart(); // 直接触发(如果非 null) 7 8 // 改成事件(推荐) 9 public static event Action RefreshSweepBoDeDataChart; 10 11 // 外部只能: 12 FreshChartHelper.RefreshSweepBoDeDataChart += Handler; 13 FreshChartHelper.RefreshSweepBoDeDataChart -= Handler; 14 // 外部不能使用 "=" 也不能直接调用事件
触发事件(只能在定义事件的类内)
// 在 FreshChartHelper 内部触发时: RefreshSweepBoDeDataChart?.Invoke();

浙公网安备 33010602011771号