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,所以只能+=、-=,其他的操作都是不可以的。