Exemple #1
0
        private static CalculatorResult Multiply(double number1, double number2)
        {
            CalculatorResult result = new CalculatorResult();

            result.data = number1 * number2;
            return(result);
        }
Exemple #2
0
        private static CalculatorResult Subtract(double number1, double number2)
        {
            CalculatorResult result = new CalculatorResult();

            result.data = number1 - number1;
            return(result);
        }
Exemple #3
0
        private static CalculatorResult Unknown(double number1, double number2)
        {
            CalculatorResult result = new CalculatorResult();

            result.unknown = false;
            return(result);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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");
            }
        }