C# 全局数组引用错误

C# 全局数组引用错误,c#,arrays,global,C#,Arrays,Global,我制作了一个程序,在按下按钮1后在textBox1和textBox2中获取信息。如果您键入textBox3,并且您在其中写入的内容与textBox1相同,则在按下按钮2后,会将textBox2的文本放入label2.text 但问题是它不会将textbox2.text放入label2.text。为什么? 代码如下: ozv[] a = new ozv[5]; int i = 0; private void button1_Click(object sender, EventArgs e) {

我制作了一个程序,在按下按钮1后在textBox1和textBox2中获取信息。如果您键入textBox3,并且您在其中写入的内容与textBox1相同,则在按下按钮2后,会将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();
        }
    }
}
当我删除for循环时,它工作正常,但当我将其放回代码中时,问题再次出现。

胡乱猜测:

我认为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();
        }
    }
for(int j=0;j
我认为您对循环的迭代次数比您通过单击按钮1实际增加“I”的次数还要多

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

例:

for(int j=0;j而不是(int j=0;j不,不是。但它是C#。那么它应该是winforms?请不要使用名称button1、button2等。非常糟糕的编程您的代码没有多大意义。第六次单击button1后出现未经处理的异常真的是您想要实现的吗?您发布了一个几乎完全相同的问题。首先,改进您的代码,使名称f您的变量包含有意义的信息,而不是发布重复项。
for (int j = 0; j < a.Length; j++)
    {
        if (a[j] != null) && a[j].name == textBox3.Text)
        {
            label2.Text = a[j].id.ToString();
        }
    }
for (int j = 0; j < a.Length; j++)
instead of for (int j = 0; j <5; j++)