public void ChangeState(ISignalState state) { State = state ?? throw new ArgumentNullException(nameof(state)); var contextProp = State.GetType() .GetProperty(nameof(State.Context)); contextProp.SetValue(State, this); }
public TrafficLight(ISignalState state) { ChangeState(state); }
/// <summary> /// Add a signal to the list of signal controlled by this command station. /// </summary> internal void AddSignal(ISignalState signal) { signals.Add(signal); AddInitializationObject(signal as IInitializeAtPowerOn); }