/// <summary>
        /// Expone los datos del elemento y su lista (incluidas sus herencias)
        /// SOLO del tipo requerido
        /// </summary>
        /// <param name="c">Elemento a exponer</param>
        /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param>
        /// <returns></returns>
        public static string Mostrar(Estacionamiento c, ETipo tipo)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c.vehiculos.Count, c.espacioDisponible);
            sb.AppendLine("");
            foreach (Vehiculo v in c.vehiculos)
            {
                switch (tipo)
                {
                case ETipo.Camioneta:
                    if (v is Camioneta)
                    {
                        Camioneta camioneta = (Camioneta)v;
                        sb.AppendLine(camioneta.Mostrar());
                    }

                    break;

                case ETipo.Moto:
                    if (v is Moto)
                    {
                        Moto moto = (Moto)v;
                        sb.AppendLine(moto.Mostrar());
                    }
                    break;

                case ETipo.Automovil:
                    if (v is Automovil)
                    {
                        Automovil automovil = (Automovil)v;
                        sb.AppendLine(automovil.Mostrar());
                    }
                    break;

                default:
                    if (v is Camioneta)
                    {
                        Camioneta camioneta = (Camioneta)v;
                        sb.AppendLine(camioneta.Mostrar());
                    }
                    else if (v is Automovil)
                    {
                        Automovil automovil = (Automovil)v;
                        sb.AppendLine(automovil.Mostrar());
                    }
                    else if (v is Moto)
                    {
                        Moto moto = (Moto)v;
                        sb.AppendLine(moto.Mostrar());
                    }
                    break;
                }
            }

            return(sb.ToString());
        }
Example #2
0
        static void Main(string[] args)
        {
            // Configuración de la pantalla
            Console.SetWindowPosition(0, 0);
            Console.SetWindowSize(Console.LargestWindowWidth / 2, Console.LargestWindowHeight - 2);
            // Nombre del alumno
            Console.Title = "";
            Estacionamiento estacionamiento = new Estacionamiento(6);
            Moto            c1 = new Moto(Vehiculo.EMarca.BMW, "ASD012", ConsoleColor.Black);
            Moto            c2 = new Moto(Vehiculo.EMarca.Honda, "ASD913", ConsoleColor.Red);
            Automovil       m1 = new Automovil(Vehiculo.EMarca.Toyota, "HJK789", ConsoleColor.White);
            Automovil       m2 = new Automovil(Vehiculo.EMarca.Chevrolet, "IOP852", ConsoleColor.Blue, Automovil.ETipo.Sedan);
            Camioneta       a1 = new Camioneta(Vehiculo.EMarca.Ford, "QWE968", ConsoleColor.Gray);
            Camioneta       a2 = new Camioneta(Vehiculo.EMarca.Renault, "TYU426", ConsoleColor.DarkBlue);
            Camioneta       a3 = new Camioneta(Vehiculo.EMarca.BMW, "IOP852", ConsoleColor.Green);
            Camioneta       a4 = new Camioneta(Vehiculo.EMarca.BMW, "TRE321", ConsoleColor.Green);

            // Agrego 8 ítems (los últimos 2 no deberían poder agregarse ni el m1 repetido) y muestro
            estacionamiento += c1;
            estacionamiento += c2;
            estacionamiento += m1;
            estacionamiento += m1;
            estacionamiento += m2;
            estacionamiento += a1;
            estacionamiento += a2;
            estacionamiento += a3;
            estacionamiento += a4;
            Console.WriteLine(estacionamiento.ToString());
            Console.WriteLine("<-----------PRESIONE UNA TECLA PARA CONTINUAR----------->");
            Console.ReadKey();
            Console.Clear();
            // Quito 2 items y muestro
            estacionamiento -= c1;
            estacionamiento -= new Moto(Vehiculo.EMarca.Honda, "ASD913", ConsoleColor.Red);
            Console.WriteLine(estacionamiento.ToString());
            Console.WriteLine("<-----------PRESIONE UNA TECLA PARA CONTINUAR----------->");
            Console.ReadKey();
            Console.Clear();
            // Vuelvo a agregar c2
            estacionamiento += c2;
            // Muestro solo Moto
            Console.WriteLine(Estacionamiento.Mostrar(estacionamiento, Estacionamiento.ETipo.Moto));
            Console.WriteLine("<-----------PRESIONE UNA TECLA PARA CONTINUAR----------->");
            Console.Beep();
            Console.Clear();
            // Muestro solo Automovil
            Console.WriteLine(Estacionamiento.Mostrar(estacionamiento, Estacionamiento.ETipo.Automovil));
            Console.WriteLine("<-----------PRESIONE UNA TECLA PARA CONTINUAR----------->");
            Console.ReadKey();
            Console.Clear();
            // Muestro solo Camioneta
            Console.WriteLine(Estacionamiento.Mostrar(estacionamiento, Estacionamiento.ETipo.Camioneta));
            Console.WriteLine("<-------------PRESIONE UNA TECLA PARA SALIR------------->");
            Console.ReadKey();
        }