public static void Main()
foo.ValueChanged += (sender, value) => Console.WriteLine($"sender: {sender}, value: {value}");
public event EventHandler<int> ValueChanged;
this.OnValueChanged(value);
protected virtual void OnValueChanged(int e)
this.ValueChanged?.Invoke(this, e);