Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство 'Adb.Form1.hanteraKund' с помощью контроллера в форме - PullRequest
0 голосов
/ 02 ноября 2011

У меня возникла проблема с инициализацией моего класса Controller в моем классе Form.Он прекрасно работает в моем консольном приложении, но я получаю эту ошибку, когда пытаюсь использовать его в своем приложении Form.

Я понимаю, что означает ошибка, но не совсем уверен, как ее решить.

Это начало моего Form-класса:

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();

1 Ответ

1 голос
/ 02 ноября 2011

Просто поместите инициализацию в тело конструктора:

public partial class Form1 : Form
{
    private HanteraKund hanteraKund;
    private Controller controller;

    public Form1()
    {
        hanteraKund = new HanteraKund();
        controller = new Controller(hanteraKund);
    }
}

(Вы можете оставить hanteraKund инициализированным в точке объявления переменной, если хотите. Важный бит в том, что controllerинициализация должна быть в теле конструктора, иначе она не может ссылаться на hanteraKund.)

...