fork(1) download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. private static DeviredExample _devired;
  6. public static void Main()
  7. {
  8. _devired = new DeviredExample();
  9. _devired.CallMethod += (sender, message) =>
  10. {
  11. Console.WriteLine(message);
  12. };
  13. _devired.SayHello();
  14. }
  15. }
  16.  
  17. public class Example
  18. {
  19. public void SayHello() => Console.WriteLine("Hello");
  20. }
  21.  
  22. public class DeviredExample : Example
  23. {
  24. public delegate void MethodCall(object sender, string message);
  25.  
  26. public event MethodCall CallMethod;
  27. protected virtual void OnCallMethod(string message, Action callback)
  28. {
  29. callback?.Invoke();
  30. CallMethod?.Invoke(this, message);
  31. }
  32.  
  33. public new void SayHello()
  34. {
  35. OnCallMethod("Say hello called", () => base.SayHello());
  36. }
  37. }
Success #stdin #stdout 0.02s 14664KB
stdin
Standard input is empty
stdout
Hello
Say hello called