using System; namespace Fraction { class Fraction { private int numerator; private int denominator; // create a fraction by passing in the numerator // and denominator public Fraction(int numerator, int denominator) { this.numerator = numerator; this.denominator = denominator; } // Overloaded operator- takes two fractions // and returns their sum public static Fraction operator -(Fraction lhs, Fraction rhs) { // Like fractions (shared denominator) can be added // by adding their numerators if (lhs.denominator == rhs.denominator) { return new Fraction(lhs.numerator - rhs.numerator, lhs.denominator); } // Simplistic solution for unlike fractions int firstProduct = lhs.numerator * rhs.denominator - rhs.numerator * lhs.denominator; int secondProduct = lhs.denominator * rhs.denominator; return new Fraction(firstProduct, secondProduct); } // Return a string representation of the fraction public override string ToString() { String s = numerator.ToString() + "/" + denominator.ToString(); return s; } } public class Tester { public void Run() { Fraction f1 = new Fraction(1, 2); Console.WriteLine("f1: {0}", f1.ToString()); Fraction f2 = new Fraction(1, 6); Console.WriteLine("f2: {0}", f2.ToString()); Fraction f3 = f1 - f2; Console.WriteLine("f1 - f2 = f3: {0}", f3.ToString()); } static void Main() { Tester t = new Tester(); t.Run(); Console.ReadLine(); } } }