2009-07-15 20 views
6

イベント+ =と - =演算子をC#でオーバーロードする方法はありますか?私がやりたいことは、イベントリスナーをとり、それを別のイベントに登録することです。このようなので、何か:+ =イベント演算子のオーバーロード

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

おかげ

答えて

21

それは本当にオーバーロードしていないが、ここであなたがそれを行う方法です。

SomeEvent += new Event(EventMethod); 

を次に代わりSomeEventに装着するのは、それが実際には異なるイベントにアタッチ:

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

switchonthecode.com

-4

あなただけ離れていくつかのタイピングから得るために探しているなら、あなたはこの

SomeEvent += MyMethod; 
6

を行うことができますあなたはcustom event accessorsを使用してC#では、これを行うことができます。あなたは、単にSomeEvent += new EventHandler(Foo)またはSomeEvent -= new EventHandler(Foo)とappropiateイベントハンドラを呼び出すことができることを意味し

public EventHandler DiffEvent; 
public EventHandler AnotherDiffEvent; 

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

は自動的に削除/追加されます。