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í.
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í.
Respuesta de darkastaroth
1