全局数组引用错误

时间:2014-04-04 13:21:40

标签: c# arrays global

我按下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循环时,它工作正常但是当我把它放回代码中时,问题再次发生。

2 个答案:

答案 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++)