1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】入力文字列のフォーマットが正しくない

2022-01-10 01:20:54

質問内容

C#で基本的な電卓を作成しています。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace calculadorac
{
    public partial class Form1 : Form
    {

    int a, b, c;
    String resultado;

    public Form1()
    {
        InitializeComponent();
        a = Int32.Parse(textBox1.Text);
        b = Int32.Parse(textBox2.Text);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        add();
        result();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        substract();
        result();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        clear();
    }

    private void add()
    {
        c = a + b;
        resultado = Convert.ToString(c);
    }

    private void substract()
    {
        c = a - b;
        resultado = Convert.ToString(c);
    }

    private void result()
    {
        label1.Text = resultado;
    }

    private void clear()
    {
        label1.Text = "";
        textBox1.Text = "";
        textBox2.Text = "";
    }
}

しかし、それを実行すると、私はエラーが発生します。

Input string was not in a correct format

<イグ

以下は、c#のフォームです。

追記:私も試してみました。

a = Convert.ToInt32(textBox1.text);
b = Convert.ToInt32(textBox2.text);

と表示され、うまくいきませんでした。

解決方法は?

このエラーは、整数をパースしようとしている文字列が、実際には有効な整数を含んでいないことを意味します。

フォームを作成したときに、テキストボックスに有効な整数がすぐに入る可能性は極めて低く、そこで整数の値を取得しています。を更新する方がずっと理にかなっています。 ab をボタンのクリックイベントで使用します (コンストラクタと同じ方法で)。また Int.TryParse 文字列が実際には整数を含んでいないかもしれない場合に、このメソッドを使うのがずっと簡単です。例外をスローしないので、回復が簡単です。