Odpowiedź zaakceptowaniu jest miłym uproszczoną wersją co +=
robi, ale to nie jest pełna historia.
Operator +=
wywołuje metodę dodawania zdarzenia. Podobnie, usuń połączenia -=
. To zwykle powoduje, że delegat jest dodawany do wewnętrznej listy handlerów, które są wywoływane, gdy zdarzenie jest uruchamiane, ale nie zawsze nie zawsze.
Jest całkowicie możliwe zdefiniowanie dodawania do zrobienia czegoś innego. Przykład ten może przyczynić się do wykazania, co się dzieje, kiedy zadzwonić +=
:
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)
{
}
}
wyjściowa: artykuł
add operation
remove operation
zobaczyć występ Jon Skeet w sprawie events and delegates aby uzyskać więcej informacji.
oraz '- =' wypisuje się z nazwy – CaffGeek