Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Icalculadora ICalculadora = new Calculadora();



            int input;

            do
            {
                MuestraMenu();
                input = Convert.ToInt32(Console.ReadLine());

                if (input != 5)
                {
                    int value1, value2;
                    LeeValores(out value1, out value2);
                    Calcula(input, value1, value2);
                }
                Console.WriteLine("");
            } while (input != 5);

            void Calcula(int opcion, int value1, int value2)
            {
                string strr = (opcion == 5) ? "sortir" : ((Operacion)opcion - 1).ToString();

                Console.WriteLine(strr);

                Type thisType = ICalculadora.GetType();

                MethodInfo method = thisType.GetMethod(strr);

                Console.WriteLine("el metodo es: {0}", method);

                //Esta linea esta mal, no he conseguido usar el metodo ni pasarle los parametros
                //Console.WriteLine("El resultado es: {0}", method.Invoke(value1, value2);

                switch (strr)
                {
                case "Suma":
                    Console.WriteLine("El resultado es: " + ICalculadora.Suma(value1, value2));
                    break;

                case "Resta":
                    Console.WriteLine("El resultado es: " + ICalculadora.Resta(value1, value2));
                    break;

                case "Multiplicacion":
                    Console.WriteLine("El resultado es: " + ICalculadora.Multiplicacion(value1, value2));
                    break;

                case "Division":
                    Console.WriteLine("El resultado es: " + ICalculadora.Division(value1, value2));
                    break;

                case "sortir":
                    break;
                }
            }

            void LeeValores(out int value1, out int value2)
            {
                Console.WriteLine("Introduzca el primer valor:");
                value1 = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Introduzca el segundo valor");
                value2 = Convert.ToInt32(Console.ReadLine());
            }

            void MuestraMenu()
            {
                Console.WriteLine("Que opcion desea realizar:");
                Console.WriteLine("1) Sumar");
                Console.WriteLine("2) Restar");
                Console.WriteLine("3) Multiplicar");
                Console.WriteLine("4) Dividir");
                Console.WriteLine("5) Salir");
            }
        }