观《深入理解C#》---委托和事件的区别
委托
- 委托封装了包含返回类型和一组参数的行为
- 委托实例是不易变的(类似string)
- 每个委托都包含了一个调用列表
事件
- 事件是对委托的封装,是一种特殊的委托,主要用于发布-订阅模式。事件提供了一种机制,使对象可以向其他对象通知发生了某种动作
- 事件通常在类内部声明,并通过该类的方法触发。在外部,其他类可以订阅(+=)或取消订阅(-=)这个事件,但不能直接触发它

事件跟属性类型,同样可以自定义“订阅”和“取消订阅”的方式,当要注意,自定义后,就无法正常Invoke这个事件了,只能Invoke指定的委托
private MyDelegate simpleDelegate; // 声明委托实例
public event MyDelegate simpleEvent
{
add
{
simpleDelegate += value;
}
remove
{
simpleDelegate -= value;
}
}

浙公网安备 33010602011771号