protected abstract string GetInvokationResult(object sender, TimerFinishedEventArgs e);
protected override string GetInvokationResult(object sender, TimerFinishedEventArgs e) => $"{nameof(SecondTimeObserver)}'s timer is up at: {e.InvokationTime:T}";
private void InvokeAction(object sender, TimerFinishedEventArgs e) { Console.WriteLine($"{GetType().Name}: ended up at {DateTime.Now:T}"); _triggerResults.Add(GetInvokationResult(sender, e)); }