6

Gibt es eine Möglichkeit, die Operatoroperatoren + = und - = in C# zu überladen? Ich möchte einen Ereignis-Listener nehmen und ihn für verschiedene Ereignisse registrieren. So etwas wie folgt aus:Überladen Sie den + = Ereignisoperator

SomeEvent += new Event(EventMethod); 

Dann stattdessen Someevent des Anbringens, es legt tatsächlich auf verschiedene Ereignisse:

DifferentEvent += (the listener above); 
AnotherDiffEvent += (the listener above); 

Dank

Antwort

21

Es ist nicht wirklich überlasten, aber hier ist, wie Sie es tun :

public event MyDelegate SomeEvent 
{ 
    add 
    { 
     DifferentEvent += value; 
     AnotherDiffEvent += value; 
    } 
    remove 
    { 
     DifferentEvent -= value; 
     AnotherDiffEvent-= value; 
    } 
} 

Weitere Informationen zu diesem Thema auf switchonthecode.com

-4

Wenn Sie gerade suchen von einem Eingabe wegzukommen, können Sie dies tun

SomeEvent += MyMethod; 
6

Sie können dies in C# tun custom event accessors verwenden.

public EventHandler DiffEvent; 
public EventHandler AnotherDiffEvent; 

public event EventHandler SomeEvent 
{ 
    add 
    { 
     DiffEvent += value; 
     AnotherDiffEvent += value; 
    } 
    remove 
    { 
     DiffEvent -= value; 
     AnotherDiffEvent -= value; 
    } 
} 

Was bedeutet, dass Sie einfach SomeEvent += new EventHandler(Foo) oder SomeEvent -= new EventHandler(Foo) und die zuständige Event-Handler werden können anrufen/automatisch hinzugefügt, entfernt.