private static CalculatorResult Multiply(double number1, double number2) { CalculatorResult result = new CalculatorResult(); result.data = number1 * number2; return(result); }
private static CalculatorResult Subtract(double number1, double number2) { CalculatorResult result = new CalculatorResult(); result.data = number1 - number1; return(result); }
private static CalculatorResult Unknown(double number1, double number2) { CalculatorResult result = new CalculatorResult(); result.unknown = false; return(result); }
public void Сalculate(CalculatorTask task) { Operation operation = Unknown; switch (task.command) { case Command.Add: operation = Add; break; case Command.Subtract: operation = Subtract; break; case Command.Multiply: operation = Multiply; break; case Command.Divide: operation = Divide; break; } CalculatorResult result = operation(task.number1, task.number2); Subscribe?.Invoke(task, result); }
private static CalculatorResult Divide(double number1, double number2) { CalculatorResult result = new CalculatorResult(); if (number1 == 0) { result.infinity = true; } else if (number2 != 0) { result.data = number1 / number2; } return(result); }
public static void ShowResult(CalculatorTask task, CalculatorResult result) { if (!result.unknown) { Console.Write($"{task.number1} {task.symbol} {task.number2} = "); if (result.infinity) { Console.WriteLine("Infinity"); } else { Console.WriteLine(result.data); } } else { Console.WriteLine("Unknown operation"); } }