全局变量不适用于在一个函数中进行搜索
本文关键字:函数 一个 搜索 适用于 不适用 全局变量 | 更新日期: 2023-09-27 17:56:42
我做了一个程序,在按下按钮1后获取文本框1和文本框2中的信息。如果您输入文本框 3 并且您在那里写的内容与文本框 1 相同,则按下按钮 2 后,它将文本框 2 的文本放入标签 2.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 { 公共字符串名称; 公共 int ID; }
删除此行:
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>
,以便您可以迭代它而不必处理 null。