你接受的答案是什么+=
做了很好的简化版本,但它不是完整的故事。
+=
运算符在事件上调用add方法。同样-=
调用删除。这个通常是导致代理被添加到处理程序的内部列表中,当事件被触发时被调用,但并不总是。
完全可以定义add来做其他事情。这个例子可能有助于说明发生了什么,当你调用+=
:
class Test
{
public event EventHandler MyEvent
{
add
{
Console.WriteLine("add operation");
}
remove
{
Console.WriteLine("remove operation");
}
}
static void Main()
{
Test t = new Test();
t.MyEvent += new EventHandler (t.DoNothing);
t.MyEvent -= null;
}
void DoNothing (object sender, EventArgs e)
{
}
}
输出:
add operation
remove operation
见乔恩斯基特对events and delegates文章以获取更多信息。
和' - ='取消订阅 – CaffGeek 2010-07-28 19:04:23