我按下button1后创建了一个在textBox1和textBox2中获取信息的程序。如果你输入textBox3,你写的内容与textBox1相同,按下button2后,它会将textBox2的文本放在label2.Text中。
但问题是它不会将textbox2.text放入label2.text。为什么呢?
以下是代码:
ozv[] a = new ozv[5];
int i = 0;
private void button1_Click(object sender, EventArgs e)
{
a[i] = new ozv();
a[i].name = textBox1.Text;
a[i].id = int.Parse(textBox2.Text);
i++;
}
private void button2_Click(object sender, EventArgs e)
{
for (int j = 0; j < 5; j++)
{
if (a[j] != null) && a[j].name == textBox3.Text)
{
label2.Text = a[j].id.ToString();
}
}
}
这是我上课的时间:
class ozv
{
public string name;
public int id;
}
当我删除for循环时,它工作正常但是当我把它放回代码中时,问题再次发生。
答案 0 :(得分:0)
狂野猜测:
我认为for循环是个问题。我想它投掷IndexOutOfArrayException
。
试试这个:
for (int j = 0; j < a.Length; j++)
{
if (a[j] != null) && a[j].name == textBox3.Text)
{
label2.Text = a[j].id.ToString();
}
}
答案 1 :(得分:0)
我认为你循环迭代的次数比你实际递增的次数多了多少次#34;我&#34;点击button1。
所以采取数组的长度&#39; a&#39;并在你的for循环中使用它的长度。
例如:
for (int j = 0; j < a.Length; j++)
instead of for (int j = 0; j <5; j++)