The answer you have accepted is a nice simplified version of what +=
does, but it's not the full story.
The +=
operator calls the add method on the event. Similarly -=
calls remove. This usually results in the delegate being added to the internal list of handlers which are called when the event is fired, but not always.
It is perfectly possible to define add to do something else. This example may help to demonstrate what happens when you call +=
:
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)
{
}
}
Output:
add operation
remove operation
See Jon Skeet's article on events and delegates for more information.