我按下button1后创建了一个在textbox1和textbox2中获取信息的程序。 如果你输入textbox3,如果你写的内容与textbox1相同,按下button2后,它会将textbox2的文本放在label2.text中。
但问题是它不会将textbox2.text放入label2.text。 为什么呢?
以下是代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
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++)
{
a[j] = new ozv();
if (a[j].name == textBox3.Text)
{
label2.Text = a[j].id.ToString();
}
}
}
}
这是我上课的时间:
类ozv { 公共字符串名称; public int id; }
答案 0 :(得分:2)
删除此行:
for (int j = 0; j < 5; j++)
{
---> a[j] = new ozv();
if (a[j].name == textBox3.Text)
你正在删除刚刚保存的内容,这就是为什么你没有得到任何结果。
另外,检查是否定义了[j]实例:
if (a[j] != null) && a[j].name == textBox3.Text)
在找到第一个匹配的出现后,您也可以break;
提前退出循环。
注1:您应该尝试逐步进入代码,并查看变量状态。这真的可以帮助你调试这样的东西。
注2:你应该考虑使用List<ozv>
,这样你就可以迭代它而不必处理空值。