全局数组引用错误

本文关键字:错误 引用 数组 全局 | 更新日期: 2023-09-27 17:56:32

我做了一个程序,在按下按钮1后获取textBox1和textBox2中的信息。如果您输入文本框3并且您在那里写的内容与文本框1相同,则按下按钮2后,它将textBox2的文本放在标签2中。发短信。

但问题是它不会将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 循环时,它工作正常,但是当我将其放回代码中时,问题再次出现。

全局数组引用错误

我认为您迭代循环的次数比您通过单击 button1 实际增加"i"的次数要多。

因此,取数组"a"的长度并在 for 循环中使用它的长度。

前任:

for (int j = 0; j < a.Length; j++)
instead of for (int j = 0; j <5; j++)

疯狂猜测:

我认为 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();
        }
    }