需要解决方案来删除 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 循环代码开始通过名称为 buttonArrayList 进行枚举。要解决此问题,我建议将按钮添加到 Array,然后您可以使用 foreach 循环来设置值:

foreach (Button button in buttons){
    button.Enabled = true;
    button.Text = "";
}