Advertisement
MBrendecke

Events

Jun 6th, 2018
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.79 KB | None | 0 0
  1. using System;
  2.  
  3. public delegate void MyEventHandler<TEventArgs>(Object sender, TEventArgs e) where TEventArgs : EventArgs;
  4.  
  5. public class MyEventArgs : EventArgs {
  6.   public string Message { get; private set; }
  7.  
  8.   public MyEventArgs(string message) {
  9.     Message = message;
  10.   }
  11. }
  12.  
  13. public class Foo {
  14.   public event MyEventHandler<MyEventArgs> Greetings;
  15.  
  16.   protected virtual void OnGreetings(MyEventArgs e) {
  17.     Greetings?.Invoke(this, e);
  18.   }
  19.  
  20.   public void Greet(string message) {
  21.     OnGreetings(new MyEventArgs(message));
  22.   }
  23. }
  24.  
  25. public class Sample {
  26.   public static void Main() {
  27.     var foo = new Foo();
  28.     foo.Greetings += Greet;
  29.  
  30.     foo.Greet("Hello World!");
  31.   }
  32.  
  33.   private static void Greet(Object sender, MyEventArgs e) {
  34.     Console.WriteLine(e.Message);
  35.   }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement