C# 字段初始值设定项不能引用非静态字段

C# 字段初始值设定项不能引用非静态字段,c#,C#,我不知道为什么这不起作用 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Button[,] button = new Button[3, 3]{ {button1, button2, button3 }, {button4,

我不知道为什么这不起作用

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }
    private Button[,] button = new Button[3, 3]{ {button1, button2, button3 },
                                                 {button4, button5, button6 },
                                                 {button7, button8, button9 } };
    private void button_Click(object sender, EventArgs e)
    {

    }
}
我得到了错误

字段初始值设定项不能引用非静态字段

在所有9个按钮上,字段初始值设定项(错误明确指出)不能引用非静态字段或值<代码>按钮1到
按钮9
不是静态的。要获得相同的结果,请在窗体的构造函数中移动数组初始化:

private Button[,] button;

public Form1()
{
    InitializeComponent();

    button = new Button[3, 3]{ {button1, button2, button3 },
                                {button4, button5, button6 },
                                {button7, button8, button9 } };
}

这些按钮必须从静态字段中引用。这就是编译器告诉你的。如果您不喜欢此操作,请从构造函数中初始化
按钮
。有关原因的解释,请参阅此部分: