需要解决方案来删除 C# 中的重复代码
Need solution to remove duplicate code in C#
我现在正在使用它来清除 Microsoft Windows Forms
上的井字游戏 table
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
button5.Enabled = true;
button6.Enabled = true;
button7.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;
button1.Text = "";
button2.Text = "";
button3.Text = "";
button4.Text = "";
button5.Text = "";
button6.Text = "";
button7.Text = "";
button8.Text = "";
button9.Text = "";
但是它太长了所以我想使用这样的 for 循环
for (int i = 1; i < 10; i++)
{
button[i].Enable = true;
button[i].Text = "";
}
但它不起作用,所以有人可以提出解决方案吗?
您可以迭代 Controls 按钮父级数组,例如,您可以将所有按钮移动到 Panel 并使用 foreach 来遍历其中的所有控件:
foreach(var control in Panel1.Controls) {
if (control is Button button)
{
button.Text = "";
button.Enabled = true;
}
}
我明白你在想什么,但你不能像那样在 for 循环中动态更改你试图编辑的变量的名称。
在for
循环中,它将遍历起始值,直到达到停止条件。 for
循环非常适合当你有一个 data structure 比如 List
或一个 Array
时,你可以在其中枚举以获取或设置值。
您的 for
循环代码开始通过名称为 button
的 Array
或 List
进行枚举。要解决此问题,我建议将按钮添加到 Array
,然后您可以使用 foreach
循环来设置值:
foreach (Button button in buttons){
button.Enabled = true;
button.Text = "";
}
我现在正在使用它来清除 Microsoft Windows Forms
上的井字游戏 table button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
button5.Enabled = true;
button6.Enabled = true;
button7.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;
button1.Text = "";
button2.Text = "";
button3.Text = "";
button4.Text = "";
button5.Text = "";
button6.Text = "";
button7.Text = "";
button8.Text = "";
button9.Text = "";
但是它太长了所以我想使用这样的 for 循环
for (int i = 1; i < 10; i++)
{
button[i].Enable = true;
button[i].Text = "";
}
但它不起作用,所以有人可以提出解决方案吗?
您可以迭代 Controls 按钮父级数组,例如,您可以将所有按钮移动到 Panel 并使用 foreach 来遍历其中的所有控件:
foreach(var control in Panel1.Controls) {
if (control is Button button)
{
button.Text = "";
button.Enabled = true;
}
}
我明白你在想什么,但你不能像那样在 for 循环中动态更改你试图编辑的变量的名称。
在for
循环中,它将遍历起始值,直到达到停止条件。 for
循环非常适合当你有一个 data structure 比如 List
或一个 Array
时,你可以在其中枚举以获取或设置值。
您的 for
循环代码开始通过名称为 button
的 Array
或 List
进行枚举。要解决此问题,我建议将按钮添加到 Array
,然后您可以使用 foreach
循环来设置值:
foreach (Button button in buttons){
button.Enabled = true;
button.Text = "";
}