C# 为什么分配事件处理程序使用 += 运算符而不是 =

问题描述

也许我的谷歌搜索不够努力,但我想了解分配事件时的语法“+=”。例如我们使用:

myButton.Click += MyClickEvent;

而不是:

myButton.Click = MyClickEvent;

为什么会这样?这里有数学吗?为什么要添加地址?

解决方法

一个事件可以有多个处理程序,因此它不是分配而是订阅。
您可以执行以下操作并调用所有处理程序。

myButton.Click += MyClickEvent;
myButton.Click += MyClickEvent1;
myButton.Click += MyClickEvent2;

要取消订阅活动,请使用

myButton.Click -= MyClickEvent2;