public static void Main()
var derived = new Derived();
public abstract class Base
public event EventHandler Foo;
private void OnFooBase(object sender, EventArgs e)
Console.WriteLine("OnFooBase called");
public void Raise() => this.Foo?.Invoke(this, EventArgs.Empty);
public class Derived : Base
private void OnFooDerived(object sender, EventArgs e)
Console.WriteLine("OnFooDerived called");