public static void CreateAndRaiseV2() { Pub2 p = new Pub2(); p.OnChange += (sender, e) => Console.WriteLine($"Event raised: {e.Value}"); p.Raise(); }
private void UsingEventHandlerDelegateWithEvent() { Console.WriteLine("Using Event Handler delegate instead of Action"); Console.WriteLine("Event handler by default takes a sender object and some event arguments"); Pub2 pub = new Pub2(); pub.onChange += (sender, e) => Console.WriteLine("1st Event raised: {0} by :{1}", e, sender); pub.onChange += (sender, e) => Console.WriteLine("2nd Event raised: {0} by :{1}", e, sender); pub.Raise(); }
public void CreateAndRaise2() { Pub2 p2 = new Pub2(); p2.OnChange += () => Console.WriteLine("Event raised to method 1"); p2.OnChange += () => Console.WriteLine("Event raised to method 2"); //p2.OnChange = () => Console.WriteLine("Accidently removed subscriptions of methods 1 & 2"); // Accidently have used assignment operator. **But** prevented when use Event keyword. p2.Raise(); // The Pub class is unaware of any subscribers, it just raises the event. // If no subscribers to an event, the OnChange property would be null. }