public static void TestDoubleCalculator() { Console.Clear(); ICalculator <double> calc = new DoubleCalculator(); INumberValidator <double> validator = new DoubleValidator(); double value1, value2, result; while (true) { try { Console.Write("Введите операцию (+ - * /): "); ConsoleKeyInfo key = Console.ReadKey(); if (key.Key == ConsoleKey.Escape) { return; } char operation = key.KeyChar; if (operations.IndexOf(operation) == -1) { Console.WriteLine("\r\nА вот и не правильно"); continue; } Console.Write("\r\nВведите 2 числа разделенных пробелом: "); if (!validator.ValidateTwoNumbers(Console.ReadLine(), out value1, out value2)) { Console.WriteLine("Неверный ввод. Придется повторить"); continue; } switch (operation) { case '+': result = calc.Add(value1, value2); break; case '-': result = calc.Subtract(value1, value2); break; case '*': result = calc.Multiply(value1, value2); break; case '/': result = calc.Divide(value1, value2); break; default: continue; } Console.WriteLine($"{ value1}{ operation}{ value2}={ result}"); } catch (Exception e) { Console.WriteLine($"Exception {e.GetType().Name}: {e.Message}"); } } }