Exemplo n.º 1
0
        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();
            }
        }