Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Circulo c1 = new Circulo();

            c1.Radio = 5;
            c1.DatosCirculo();

            // Upcasting
            IFigura f1 = new Circulo {
                Radio = 5
            };

            f1.CalcularArea();
            IFigura f2 = new Triangulo {
                Base = 10, Altura = 9
            };
            IFigura f3 = new Rectangulo {
                Base = 4, Altura = 3
            };

            IFigura[] figuras = new IFigura[] { f1, f2, f3 };

            foreach (var figura in figuras)
            {
                Console.WriteLine(figura.CalcularArea());
            }

            // Downcasting
            Circulo c = f1 as Circulo;

            c.Radio = 5;
            Console.WriteLine("Datos del circulo");
            c.DatosCirculo();

            Console.ReadKey();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.Clear();
            Figura ofig = null; // este objeto no fue instanciado todavia

            //Dentro del while->switch, se instanciara en Circulo, Cuadrado, segun la opcion
            //que se haya elegido.

            while (true)
            {
                Console.Write("\nSeleccione una opcion: \n");
                Console.WriteLine("0-Salir");
                Console.WriteLine("1-Circulo");
                Console.WriteLine("2-Triangulo");
                Console.WriteLine("3-Cuadrado");
                Console.WriteLine("4-Rectangulo\n");
                Console.Write("Opcion: ");

                //string opcion = Console.ReadKey().ToString(); //Lee hasta la primera letra, pero readKey es char, lo casteo a string
                string opcion = Console.ReadLine().ToString(); //Otra alternativa
                //Si uso con Key, el if de abajo no va a funcionar
                int output;
                if (int.TryParse(opcion, out output))
                {
                    float output2;

                    if (output == 0)
                    {
                        break;
                    }
                    else
                    {
                        switch (output)
                        {
                        case 1: Console.Write("\nIngrese el radio: ");
                            while (true)
                            {
                                opcion = Console.ReadLine().ToString();

                                if (float.TryParse(opcion, out output2))
                                {
                                    //Circulo circ = new Circulo(output2);
                                    ofig = new Circulo(output2);
                                    break;
                                }
                                else
                                {
                                    Console.Write("Ingrese nuevamente el radio: ");
                                }
                            }
                            break;

                        case 2: Console.Write("\nIngrese la base: ");
                            while (true)
                            {
                                opcion = Console.ReadLine().ToString();
                                if (float.TryParse(opcion, out output2))
                                {
                                    float baseaux = output2;
                                    Console.Write("\nIngrese la altura: ");
                                    while (true)
                                    {
                                        opcion = Console.ReadLine().ToString();
                                        if (float.TryParse(opcion, out output2))
                                        {
                                            Triangulo trian = new Triangulo(baseaux, output2);

                                            break;
                                        }
                                        else
                                        {
                                            Console.Write("\nIngrese nuevamente la altura: ");
                                        }
                                    }
                                    break;
                                }
                                else
                                {
                                    Console.Write("Ingrese nuevamente el radio: ");
                                }
                            }
                            break;

                        case 3: Console.Write("\nIngrese el lado: ");
                            while (true)
                            {
                                opcion = Console.ReadLine().ToString();
                                if (float.TryParse(opcion, out output2))
                                {
                                    //Cuadrado cuad = new Cuadrado(output2);
                                    ofig = new Cuadrado(output2);
                                    break;
                                }
                                else
                                {
                                    Console.Write("\nIngrese nuevamente el lado: ");
                                }
                            }
                            break;

                        case 4: Console.Write("\nIngrese el lado A: ");
                            while (true)
                            {
                                opcion = Console.ReadLine().ToString();
                                if (float.TryParse(opcion, out output2))
                                {
                                    Console.Write("\nIngrese el lado B: ");
                                    float auxLadoA = output2;
                                    while (true)
                                    {
                                        if (float.TryParse(opcion, out output2))
                                        {
                                            break;
                                        }
                                        else
                                        {
                                            Console.Write("Ingrese nuevamente ladoB: ");
                                        }
                                    }
                                    break;
                                }
                                else
                                {
                                    Console.Write("Ingrese nuevamente ladoA: ");
                                }
                            }
                            break;
                        }

                        Console.WriteLine("\n{0} es el Area de la figura\n", ofig.calcularArea());
                    }
                }
                else  //Cuando no lo puede parsear
                {
                    Console.WriteLine("\nIngrese la opcion correcta");
                }



                //Intenta parsear opcion, si lo parsea bien, (convertirlo a int)
                //el resultado lo devuelve en output, y devuelve true, de lo contrario false
            }

            //Console.Read();
        }