提问者:小点点

输入字符串的格式不正确


我是C#的新手,我有一些Java方面的基础知识,但我不能让这段代码正常运行。

它只是一个基本的计算器,但当我运行程序时,VS2008给了我这个错误:

我做了几乎相同的程序,但在Java使用的是JSwing,它运行得非常好。

下面是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 = "";
    }
}

会有什么问题?有没有办法解决?

PS:我也试过

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

但没有奏效。


共1个答案

匿名用户

该错误意味着试图解析整数的字符串实际上不包含有效的整数。

创建表单时,文本框不太可能立即包含有效的整数--这是您获取整数值的地方。在按钮单击事件中更新AB会更有意义(与在构造函数中更新的方式相同)。此外,请查看int.tryparse方法-如果字符串实际上可能不包含整数,则使用它要容易得多-它不会引发异常,因此更容易恢复。