MBrendecke icon

Events

MBrendecke | PRO | 06/06/18 12:32:09 PM UTC | 0 ⭐ | 391 👁️ | Never ⏰ | []
C# |

790 B

|

None

|

0 👍

/

0 👎

using System;
 
public delegate void MyEventHandler<TEventArgs>(Object sender, TEventArgs e) where TEventArgs : EventArgs;
 
public class MyEventArgs : EventArgs {
  public string Message { get; private set; }
 
  public MyEventArgs(string message) {
    Message = message;
  }
}
 
public class Foo {
  public event MyEventHandler<MyEventArgs> Greetings;
 
  protected virtual void OnGreetings(MyEventArgs e) {
    Greetings?.Invoke(this, e);
  }
 
  public void Greet(string message) {
    OnGreetings(new MyEventArgs(message));
  }
}
 
public class Sample {
  public static void Main() {
    var foo = new Foo();
    foo.Greetings += Greet;
 
    foo.Greet("Hello World!");
  }
 
  private static void Greet(Object sender, MyEventArgs e) {
    Console.WriteLine(e.Message);
  }
}

Comments