Realmente a sua lógica está errada (está errada porque é Raiz do Delta e não raiz dos elementos contidos na expressão do valor resultante do Delta, exemplo do erro: double delta_p1 = Math.Sqrt(b*b); double delta_p2 = Math.Sqrt(4*a*c); ou seja, se não pode separar o valor de Delta pra depois extrair a raiz separado, é o valor resultado do Delta e depois a raiz do Delta, entendeu?), mas, vamos entender o seguinte:
Nesse link:
tem a forma explicativa na matemática como resolver a formula de baskara, agora é só trazer o conhecimento anterior para o código C#.
Peguei os mesmo valores onde
int a = 1;
int b = 8;
int c = -9;
e o resultado é x' = 1 e x'' = -9 e fiz o transporte para o código C#.
Primeira coisa que eu fiz é achar o valor de Delta (D) que é:
double delta = (b * b) - (4 * a * c);
depois ele pede a raiz de delta
double raiz = Math.Sqrt(delta);
ai você vai achar o x' e x'' (no caso eu coloque x1 e x2):
var x1 = ((-(b)) + raiz) / (2 * a);
var x2 = ((-(b)) - raiz) / (2 * a);
pronto os valores são x1 = 1 e x2 = -9 que é a resposta para a = 1, b = 8 e c = -9.
Exemplo Online:
https://dotnetfiddle.net/xkDPvl
Código Final:
int a = 1;
int b = 8;
int c = -9;
double delta = (b * b) - (4 * a * c);
double raiz = Math.Sqrt(delta);
var x1 = ((-(b)) + raiz) / (2 * a);
var x2 = ((-(b)) - raiz) / (2 * a);
Console.WriteLine("Valor de X': {0}", x1);
Console.WriteLine("Valor de X'': {0}", x2);