Ошибки, которые бросаются в глаза (некоторые из них притянуты за уши(!)):
1. Сразу конвертируем данные из строки в числа:
double a = Convert.ToDouble(Console.ReadLine());
Сломает вашу программу полностью, если написать в консоль символ, либо вообще ничего не писать.
Используйте double.TryParse
2. Используйте интерполяцию строк:
Console.WriteLine($"квадратное выражение: {a} + x^2 + {b} + x + {c}");
3. Лишние скобки:
x1 = ((-b + (Math.Sqrt(D))) / (2 * a));
Для чего?
4. Лишние переменные для чего? Посчитали и выводим на консоль результат, ЕСЛИ дальше результат не нужен для вычислений:
Console.WriteLine($"X1 = {(-b + (Math.Sqrt(D))) / (2 * a)}");
Console.WriteLine($"X2 = {(-b - (Math.Sqrt(D))) / (2 * a)}");
5. Для выхода не обязательно объявлять переменную:
if (Console.ReadLine() == "exit")
break;