2016-10-12 4 views
1

Ich versuche zu verstehen, wie man einfache Fehlermeldung Funktion, die reagieren würde, wenn Zeichenfolge in Textfelder anstelle von Zahlen eingegeben wurde.Wie schreibe ich einfache ErrorMessage Funktion

Angenommen, ich möchte den Wert 1 und den Wert 2 berechnen, aber einen Fehler in der Beschriftung anzeigen, wenn die Zeichenfolge eingegeben wurde.

BEISPIEL

1 + 1 = 2

a + 1 = Fehler

Mein Code

Calculate.cs

public static string ErrorMessage() 
    { 
     string msg = ""; 
     try 
     { 
      //do sth 
     } 
     catch (Exception ex) 
     { 
      msg = "Wrong value"; 
     } 
     return msg; 
    } 

Calculator.asxc

protected void Button1_Click(object sender, EventArgs e) 
    { 
    try 
     { 

      //calculate - works 
     } 
    catch 
     { 
      Error.Text = Calculate.ErrorMsg(); 
     } 

auch versucht, etw wie diese, aber scheint nicht zu funktionieren:

Calculate.cs

public static bool ErrorMessage(string value1, string value2) 
    { 
     bool check = true; 
     string error; 
     if (value1 != "" && value2 != "") 
     { 
      check = true; 
     } 
     if (value1 =="" || value2 =="") 
     { 
      check = false; 
      error = "Error!"; 
     } 
     return check;  
    } 

Calculator.asxc

protected void Button1_Click(object sender, EventArgs e) 
    { 
    try 
     { 

      //calculate - works 
     } 
     // 
     catch 
     { 
     bool res = false; 

      res = Calculate.ErrorMessage(textBox1.Text, textBox2.Text); 

      Error.Text = res.ToString(); 
     } 

Ich weiß, dass das zweite Verfahren nicht für numerische Zahlen nicht überprüft, aber ich habe nur versucht, eine gewisse Logik zu implementieren und sehen, ob ti nichts works..but hat

Ich bin verloren ... bitte helfen

Antwort

2

Wie ich verstehe, arbeiten Sie mit Zahlen und möchten, dass Ihre Anwendung eine Fehlermeldung anzeigt, wenn der Benutzer eine Zeichenfolge anstelle der Zahl eingibt.

Sie sollten Int32.Parse() oder Int32.TryParse() Methoden verwenden. Weitere Informationen über Parse und TryParse hier.

Methode TryParse ist gut genug, da es keinen Fehler wirft, wenn es Zeichenfolge in Ganzzahl nicht analysieren kann, gibt es stattdessen false zurück.

Hier ist Beispiel dafür, wie diese Methode in Ihren Klassen zu verwenden, Button1_Click-Methode so etwas wie dies ändern:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    int a; 
    int b; 

    // Here we check if values are ok 
    if(Int32.TryParse(textBox1.Text, out a) && Int32.TryParse(textBox2.Text, b)) 
    { 
     // Calculate works with A and B variables 
     // don't know whats here as you written (//calculate - works) only 
    } 
    // If the values of textBoxes are wrong display error message 
    else 
    { 
     Error.Text = "Error parsing value! Wrong values!"; 
    } 
} 

Wenn Sie Errormessage Methode verwenden müssen, dann hier ist es, wie Sie ändern können Ihre Errormessage Methode, dies ist jedoch komplexer, das erste Beispiel ist einfacher:

public static string ErrorMessage(string value1, string value2) 
{ 
    int a; 
    int b; 

    // If we have an error parsing (note the '!') 
    if(!Int32.TryParse(value1, out a) || !Int32.TryParse(value2, b)) 
    { 
     return "Error parsing value! Wrong values!"; 
    } 

    // If everything is ok 
    return null; 
} 

Hop Das hilft, fragen Sie, ob Sie mehr Informationen benötigen.

+0

ja du bist auf dem Punkt, was ich versuche zu tun ... aber wie soll ich Void-Funktion in einem anderen Webformular anzeigen? auch ... Funktion ErrorMessage() soll die get-set-Werte von value1, value2 ... überprüfen – aiden87

+0

Edited erstes Beispiel und hinzugefügt * ErrorMessage * Beispiel, wenn Sie diese Funktion haben müssen. Hör zu. –

+0

das funktioniert perfekt! Ich werde versuchen, den Code durchzugehen und ihn zu verstehen. Danke, Mann! – aiden87

Verwandte Themen