2016-07-23 6 views
-4
//Add comments here that explain the Sqrt method 
     private void btnSqrt_Click(object sender, EventArgs e) 
     { 
      double num = double.Parse(textDisplay.Text); 
      if (num >= 0) 
      { 
       textDisplay.Text = SquareRoot(num).ToString(); 
      } 
      else 
      { 
       MessageBox.Show("Number must be positive", "Error Message"); 
       textDisplay.Text = "0"; 
      } 
     } 

     //Add comments here that explain the Sqrt function 
     //What are the arguments and the return value(s) 

     //To Do – Add the math sqrt method. 

     private double SquareRoot(double x) 
     { 



      textDisplay.Text = Convert.ToString(Math.Sqrt(Convert.ToDouble(x))); 


     } 

Ich habe Probleme mit der Mathe-sqrt-Methode. Für diese Frage habe ich die erste Zeile geben
private Double SquareRoot (Doppel x) Ich habe versucht, die Methode zu schreiben, aber ich habe eine rote Linie unter SquareRoot. Was ist mit meiner Methode falsch? Dank Es ist ein RechnerMath sqrt-Funktion. Was fehlt mir?

+2

Sie sollten lernen, VS bietet auf Hilfe näher zu betrachten, bevor hierher zu kommen! Es hat Ihnen sicherlich gesagt, dass Ihre Methode den Rückgabewert vermisst, den Sie in der Signatur versprochen haben. – TaW

Antwort

0

Sie haben eine return-Anweisung wie folgt zu liefern:

private double SquareRoot(double x) 
{ 
    return Math.Sqrt(x); 
} 

... oder es void ... wie diese machen:

private void SquareRoot(double x) 
+0

Sie rufen 'Math.Sqrt' und' Convert.ToDouble' zweimal auf. Das 'Convert.ToDouble' wird nicht einmal benötigt, da der Parameter bereits vom Typ' double' ist. – Wazner

+0

@Wazner, ja, ich war dabei, es zu bearbeiten. Könntest du mich abstimmen? –

+0

Kein Problem, ich habe meinen Downvote entfernt. Gute Arbeit an der schnellen Bearbeitung :) – Wazner

1

Ihre Methode legt fest, Es gibt einen double Wert zurück, aber es gibt keine Rückgabeanweisung in seinem Körper. Um diesen Fehler zu beheben, ändern Sie Ihre Methode auf die folgenden:

private double SquareRoot(double x) 
{ 
    return Math.Sqrt(x); 
} 

ich die Convert.ToDouble Sehen entfernt als Parameter double Typ hat, entfernt auch die Convert.ToString, weil Sie bereits sind Aufruf ToString früher, wo die Funktion aufgerufen wird.

+0

Danke für die klare Erklärung. – Deise

0

Ihre Methode sollte return eine double, und sollte nicht die textbox Eigenschaft ändern.

private double SquareRoot(double x) 
{ 
    return Math.Sqrt(x); 
} 
0

Sie haben den Wert zurück

private double SquareRoot(double x) 
{ 
    return Math.Sqrt(x); 
}