1

我想有条件地取消挂钩事件处理程序。这是正确的方法吗:

tb.TextChanged -= textBoxIntName_TextChanged;

?

这似乎是明智的,因为需要连接它:

tb.TextChanged += textBoxIntName_TextChanged;

...但似乎与“Delphi 方式”相对应的东西也更有意义(但唉,它不能编译):

tb.TextChanged = nil;
4

1 回答 1

5

您不能分配事件 - 只有附加 (+=) 和删除 (-=) 操作可用于客户端。

在此处阅读有关活动的更多信息。

C#规范还说

由于 += 和 -= 是在声明事件的类型之外的事件上允许的唯一操作,因此外部代码可以添加和删除事件的处理程序,但不能以任何其他方式获取或修改事件处理程序的底层列表.

于 2012-04-27T22:02:27.420 回答