public void Run() { List <TrafficLight> trafficLights = new List <TrafficLight>(); Type classType = typeof(TrafficLight); string[] inputLights = read .ConsoleReadLine() .Split(" ", StringSplitOptions .RemoveEmptyEntries); int number = int.Parse(read.ConsoleReadLine()); for (int i = 0; i < inputLights.Length; i++) { TrafficLight currLight = (TrafficLight)Activator .CreateInstance( classType, new object[] { inputLights[i] }); trafficLights.Add(currLight); } for (int i = 0; i < number; i++) { foreach (TrafficLight light in trafficLights) { light.ChangeLight(); FieldInfo fieldInfo = classType .GetField( "colorAtLight", BindingFlags.Instance | BindingFlags.NonPublic); writer.ConsoleWrite(fieldInfo.GetValue(light) + " "); } writeLine.ConsoleWriteLine(); } }