using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Timers; namespace Observer.TimerObserver { class Observer { private Subject subject = new Subject(); private string status; public void Test() { subject.Changed += Subject_Changed; } private void Subject_Changed(object sender, EventArgs e) { ElapsedEventArgs eArgs = e as ElapsedEventArgs; DateTime signalTime = eArgs == null ? DateTime.Now : eArgs.SignalTime; status = $"Subject updated at {signalTime}"; Console.WriteLine(status); } } }