Heim > Backend-Entwicklung > C++ > Warum wirft mein C# -Calculator eine 'Eingangszeichenfolge nicht in einem korrekten Format' aus?

Warum wirft mein C# -Calculator eine 'Eingangszeichenfolge nicht in einem korrekten Format' aus?

DDD
Freigeben: 2025-01-30 01:46:08
Original
338 Leute haben es durchsucht

Why Does My C# Calculator Throw an

Fehlerbehebung bei dem Fehler "Eingabebestand, der nicht in einem korrekten Format war" in Ihrem C# -Conator

Dieser gemeinsame C# -Fehler "Eingabezeichenfolge war nicht in einem korrekten Format", taucht normalerweise auf, wenn versucht wird, eine Zeichenfolge (wie Text aus einem Textfeld) in eine Zahl (z. B. eine Ganzzahl) umzuwandeln. In Ihrem Taschenrechner geschieht dies wahrscheinlich, da der Code versucht, den Textbox -Inhalt in Ganzzahlen zu konvertieren, bevor der Benutzer alle gültigen Zahlen eingegeben hat.

Das Problem beruht auf der Initialisierung von Ganzzahlvariablen im Konstruktor. Zu diesem Zeitpunkt sind die Textboxen leer oder enthalten nicht numerische Daten, wodurch Int32.Parse fehlschlägt.

Das Fix:

Die Lösung besteht darin, die Nummernkonvertierung auf die Schaltfläche zu verschieben Klicken Sie mit Ereignishandlern. Dies stellt sicher, dass die Textboxen vor den Konvertierungsversuch Benutzereingabe enthalten.

Hier erfahren Sie, wie Sie Ihre Schaltfläche ändern können. Klicken Sie auf Ereignishandler:

<code class="language-csharp">private void button1_Click(object sender, EventArgs e)
{
    if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b))
    {
        add(a, b);
        result();
    }
    else
    {
        // Handle invalid input (e.g., display an error message)
        MessageBox.Show("Please enter valid numbers."); 
    }
}

private void button2_Click(object sender, EventArgs e)
{
    if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b))
    {
        subtract(a, b);
        result();
    }
    else
    {
        MessageBox.Show("Please enter valid numbers.");
    }
}</code>
Nach dem Login kopieren

Wichtige Verbesserung: Verwendung Int32.TryParse

Der obige Code verwendet Int32.TryParse statt Int32.Parse. TryParse ist deutlich besser, weil es:

  • behandelt Fehler anmutig: Es gibt true zurück, wenn die Konvertierung erfolgreich ist und false ansonsten verhindern, dass das Programm abstürzt.
  • bietet Fehlerprüfung: Sie können die Fehlerbehandlung (wie das Beispiel MessageBox.Show) hinzufügen, um den Benutzer über ungültige Eingaben zu informieren.

Dieser robuste Ansatz macht Ihren Taschenrechner viel benutzerfreundlicher und verhindert unerwartete Abstürze. Denken Sie daran, die Parameter add() und subtract() zu akzeptieren.

Das obige ist der detaillierte Inhalt vonWarum wirft mein C# -Calculator eine 'Eingangszeichenfolge nicht in einem korrekten Format' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage