当前位置: 代码迷 >> 综合 >> 委托和事件(11)——事件本质论
  详细解决方案

委托和事件(11)——事件本质论

热度:16   发布时间:2023-10-01 22:15:23.0

event会自动生成一个private delegate变量和两个函数: add和remove,C#编译器用这两个方法支持+=和-=操作符。C#<>.Net

public event MyDelegate OnEvent;
//内部实现是(示例性)
private MyDelegate OnEvent;
public void Add(MyDelegate d)
{OnEvent+=d;
}
public void Remove(yDelegate d)
{OnEvent-=d;
}

因为OnEvent是private的,所以在类外部不能OnEvent(1)触发事件,但是在类内部可以。

public的方法只有Add和Remove,所以只能+=、-=,其他的操作都是不可以的。

  相关解决方案