Problema de principiantes con una clase en C#

Estoy empezando a programar en C# y me ha surgido una duda, cualquiera que sepa un poco me lo podrá solucionar en un momento.
Estoy haciendo una clase para trabajar con fracciones pero no consigo que me funcione. Este es el código (esta página elimina los identados o tabulaciones y no se ve lo bien que debería):
--------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
class Fraccion
{
   public Fraccion()
   {
      this.num = 0;
      this.den = 0;
   }
   public Fraccion(int num, int den)
   {
      this.num = num;
      this.den = den;
   }
   //Variables
   public int num;
   public int den;
   //Métodos
   public Fraccion multiplica (Fraccion F1, Fraccion F2)
   {
      int sol_num = F1.num * F2.num;
      int sol_den = F1.den * F2.den;
      Fraccion soluc = new Fraccion(sol_num, sol_den);
      return soluc;
   }
}
class FraccionApp
{
   static void Main(string[] args)
   {
      Fraccion uno = new Fraccion(1, 2);
      Fraccion dos = new Fraccion(3, 5);
      Fraccion solucion = new Fraccion();
      solucion.multiplica(uno, dos);
      Console.WriteLine("{0}/{1}", solucion.num, solucion.den);
   }
}
--------------------------------------
Ejecutándolo paso a paso veo que dentro del método "multiplica" el resultado lo consigue, pero falla a la hora de actualizar el objeto "solución" en el método "main".
Vamos, que la línea en negrita la hace bien pero a medias (dentro del método multiplica sí que lo hace pero no se actualiza el nuevo valor de "solución"). ¿Alguien me puede ayudar? Haciendo sobrecarga del operador "*" me funciona pero quería hacerlo como lo estoy haciendo aquí.

1 respuesta

Respuesta
1
Bueno antes que nada, tomando todo lo que has hecho, el problema se resuelve simple.
Asignar el valor devuelto del método multiplica a si mismo
Fraccion uno = new Fraccion(1, 2);
      Fraccion dos = new Fraccion(3, 5);
      Fraccion solucion = new Fraccion();
solucion= solucion.multiplica(uno, dos);//Esta es la solción
      Console.WriteLine("{0}/{1}", solucion.num, solucion.den);
Espero haberte ayudado, y ojalá sigas este gran camino de la programación

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas