ホームページ > バックエンド開発 > C++ > C#計算機が「入力文字列が正しい形式ではなかった」エラーをスローするのはなぜですか?

C#計算機が「入力文字列が正しい形式ではなかった」エラーをスローするのはなぜですか?

DDD
リリース: 2025-01-30 01:46:08
オリジナル
297 人が閲覧しました

Why Does My C# Calculator Throw an

トラブルシューティング「入力文字列は正しい形式ではありませんでした」エラーはc#計算機

この一般的なC#エラー「入力文字列は正しい形式ではありませんでした」は、通常、文字列(テキストボックスのテキストなど)を数字(整数など)に変換しようとするとポップアップします。 計算機では、ユーザーが有効な番号を入力する前に、コードがテキストボックスの内容を整数に変換しようとしようとするため、これが起こる可能性があります。

問題は、コンストラクター内の整数変数の初期化に起因します。 この時点で、テキストボックスは空であるか、数字以外のデータが含まれているため、

が失敗します。 Int32.Parse

修正:

ソリューションは、数字の変換をボタンクリックイベントハンドラーに移動することです。これにより、テキストボックスには、変換の試行の前にユーザー入力が含まれています

ボタンクリックイベントハンドラーを変更する方法は次のとおりです

重要な改善:

<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>
ログイン後にコピー
を使用します

上記のコードは、の代わりにInt32.TryParseを使用します。 は、それが非常に優れているため、

Int32.TryParseInt32.Parseエラーを優雅に処理します:TryParse変換が成功した場合は

    そうでなければ、プログラムがクラッシュするのを防ぎます。
  • エラーチェックを提供します:trueエラーハンドリング(false例のように)を追加して、無効な入力についてユーザーに通知できます。
  • この堅牢なアプローチにより、計算機ははるかに使いやすくなり、予期しないクラッシュを防ぎます。 およびを調整して、MessageBox.Showおよび
  • パラメーターを受け入れることを忘れないでください。

以上がC#計算機が「入力文字列が正しい形式ではなかった」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート