2016-08-24 5 views

答えて

2

これらの2つの異なるもの

eventあるがイベントを宣言します。

https://msdn.microsoft.com/en-us/library/8627sbea.aspx

EventHandlerは、イベントが発生しますメソッドを定義します。

https://msdn.microsoft.com/en-us/library/system.eventhandler(v=vs.110).aspx

EventHandler<TEventArgs>カスタムEventArgsための便利なラッパーです:

https://msdn.microsoft.com/en-us/library/db0etb8x(v=vs.110).aspx

イベント

using System; 

namespace ConsoleApplication3 
{ 
    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      // using a method 
      MyEvent += Program_MyEvent; 

      // using EventHandler, possible but not mandatory 
      MyEvent += new EventHandler(Target); 

      // using lambda syntax 
      MyEvent += (sender, eventArgs) => { }; 

      // using delegate 
      MyEvent += delegate (object sender, EventArgs eventArgs) { }; 

      // using delegate, signature is optional actually 
      MyEvent += delegate { }; 
     } 

     private static void Target(object sender, EventArgs eventArgs) 
     { 
     } 

     private static void Program_MyEvent(object sender, EventArgs e) 
     { 
     } 

     public static event EventHandler MyEvent; 
    } 

} 
+0

に加入するさまざまな方法だから、+ =のEventHandlerと+ =メソッドをやっ間のdiffrenceはありますか? – Spaghetti

+0

いいえ、必要はありませんが、私の更新された回答をご覧ください。 – Aybe

+1

@ Spaghetti - いいえ、この答えの5つの '+ = 'スタイルはまったく同じことを行います。イベントにデリゲートインスタンスを添付します。 – Enigmativity

関連する問題