public static NaturalNumber CalculateExpression(string expression) { var expressionParts = expression.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (expressionParts.Length != 3) { throw new InvalidDataException("Invalid expression!"); } var firstNumber = new NaturalNumber(expressionParts[0]); var secondNumber = new NaturalNumber(expressionParts[2]); var operation = expressionParts[1]; return GetResult(operation, firstNumber, secondNumber); }
public static NaturalNumber CalculateExpression(string expression) { var expressionParts = expression.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (expressionParts.Length != 3) { throw new InvalidDataException("Invalid expression!"); } var firstNumber = new NaturalNumber(expressionParts[0]); var secondNumber = new NaturalNumber(expressionParts[2]); var operation = expressionParts[1]; return(GetResult(operation, firstNumber, secondNumber)); }
private static NaturalNumber GetResult(string operation, NaturalNumber firstNaturalNumber, NaturalNumber secondNaturalNumber) { NaturalNumber result; switch (operation) { case "+": result = firstNaturalNumber + secondNaturalNumber; break; case "-": result = firstNaturalNumber - secondNaturalNumber; break; case "*": result = firstNaturalNumber*secondNaturalNumber; break; default: throw new InvalidOperationException("Invalid operation"); } return result; }
private static NaturalNumber GetResult(string operation, NaturalNumber firstNaturalNumber, NaturalNumber secondNaturalNumber) { NaturalNumber result; switch (operation) { case "+": result = firstNaturalNumber + secondNaturalNumber; break; case "-": result = firstNaturalNumber - secondNaturalNumber; break; case "*": result = firstNaturalNumber * secondNaturalNumber; break; default: throw new InvalidOperationException("Invalid operation"); } return(result); }
public static NaturalNumber operator *(NaturalNumber a, NaturalNumber b) { var result = new NaturalNumber(a.Arabic * b.Arabic); return(result); }
public static NaturalNumber operator -(NaturalNumber a, NaturalNumber b) { if (a.Arabic - b.Arabic <= 0) { throw new InvalidOperationException("Result outside the set of natural numbers"); } var result = new NaturalNumber(a.Arabic - b.Arabic); return result; }
public static NaturalNumber operator +(NaturalNumber a, NaturalNumber b) { var result = new NaturalNumber(a.Arabic + b.Arabic); return result; }