字段初始化器不能引用非静态字段、方法或属性'在窗体上使用控制器

本文关键字:字段 窗体 控制器 不能 初始化 引用 方法 静态 属性 | 更新日期: 2023-09-27 18:12:59

我在Form-class中初始化我的Controller-class时遇到了一些问题。它在我的控制台应用程序中工作得很好,但当我试图在我的表单应用程序中使用它时,我得到了这个错误。

我明白这个错误是什么意思,但不太确定如何解决它。

这是我的Form-class的开始:

namespace Adb
{
    public partial class Form1 : Form
    {
        private HanteraKund hanteraKund = new HanteraKund();
        Controller controller = new Controller(hanteraKund);

我的控制器:

namespace Adb
{
    class Controller
    {
        DBConnection Connection = new DBConnection();
        HanteraKund hanteraKund = new HanteraKund();
        public Controller (HanteraKund hanteraKund)
        {
            this.hanteraKund = hanteraKund;
        }

最后是我的HanteraKund

namespace Adb
{
    class HanteraKund
    {
        DBConnection Connection = new DBConnection();

字段初始化器不能引用非静态字段、方法或属性'在窗体上使用控制器

只需将初始化放入构造函数体中:

public partial class Form1 : Form
{
    private HanteraKund hanteraKund;
    private Controller controller;
    public Form1()
    {
        hanteraKund = new HanteraKund();
        controller = new Controller(hanteraKund);
    }
}

(如果您愿意,可以在变量声明时将hanteraKund初始化。重要的一点是,controller初始化必须在构造函数体中,否则它不能引用hanteraKund