/// <summary> /// Adds two fractions /// </summary> /// <param name="b"></param> /// <returns></returns> public Fraction Add(Fraction b) { if (b == null) { throw new ArgumentNullException("One of the operand or fraction cannot be null.", "b"); } if (Denominator == 0 || b.Denominator == 0) { throw new ArgumentException($"One of the denominators is invalid.Denominator:{Denominator} or {b.Denominator}"); } int commonDenominator = LCD(Denominator, b.Denominator); Fraction commonA = Convert(commonDenominator); Fraction commonB = b.Convert(commonDenominator); Fraction sum = new Fraction { Numerator = commonA.Numerator + commonB.Numerator, Denominator = commonDenominator }; return(sum.Reduce()); }