Сложить два объекта класса - C#
Формулировка задачи:
Есть задача: создать на сишарпе класс (в этой предметной области ну совсем ничего не понимаю), и с экземплярами выполнять сложение, вычитание, умножение, сравнение. "Создать" эти экземпляры удалось. Даже преобразовать в дабл. Но хотелось бы чтоб это можно было сделать средствами класса (да и задача, вроде, именно так стоит). Кто может чего подсказать?
Заранее благодарю!
/*
* Создать класс Fraction для работы с дробными числами.
* Число должно быть представлено двумя полями: целая часть - длинное целое со знаком,
* дробная часть - беззнаковое короткое число.
* Реализовать арифметические операции сложения, вычитания, умножения и операции сравнения экземпляров класса.
*/
using System;
namespace MyFraction
{
/* ОПИСАНИЕ КЛАССА */
public class Fraction
{
private long left;
private ushort right;
public Fraction(long left = 0, ushort right = 0)
{
this.left = left;
this.right = right;
}
public long LeftPart
{
get
{
return left;
}
set
{
left = value;
}
}
public ushort RightPart
{
get
{
return right;
}
set
{
right = value;
}
}
public double Result
{
get
{
if (LeftPart < 0)
{
return LeftPart - (RightPart / Math.Pow(10, RightPart.ToString().Length));
}
else
{
return LeftPart + (RightPart / Math.Pow(10, RightPart.ToString().Length));
}
}
}
static long addLeft (long leftOne, long leftTwo)
{
return leftOne + leftTwo;
}
}
/* ИСПОЛЬЗОВАНИЕ КЛАССА */
public class FractionDemo
{
public static void Main()
{
Fraction first = new Fraction(123, 5);
Fraction second = new Fraction(-324, 432);
double fst = first.Result;
double scnd = second.Result;
Console.WriteLine("{0} and {1}", fst, scnd);
/*Console.WriteLine("Left: {0}, Right: {1}, Result: {2}", first.LeftPart, first.RightPart, first.Result);
Console.WriteLine("Left: {0}, Right: {1}, Result: {2}", second.LeftPart, second.RightPart, second.Result);*/
Console.ReadLine();
}
}
}Решение задачи: «Сложить два объекта класса»
textual
Листинг программы
public static Fraction operator +(Fraction c1, Fraction c2)
{
return new Fraction(c1.left + c2.left, Convert.ToUInt16(c1.right + c2.right));
}
public static bool operator >(Fraction c1, Fraction c2)
{
return (c1.left > c2.left)&&(c1.right > c2.right);
}
public static bool operator <(Fraction c1, Fraction c2)
{
return (c1.left < c2.left) && (c1.right < c2.right);
}