Error message: cannot access non-static method in static context.

Вот одна из причин этого сообщения:

Инициализация поля происходит вне конструктора, причем при инициализации требуется нестатический метод класса.

Пример: Поле класса хранит ссылку на таймер. При инициализации нужно в конструктор таймера передать не статический метод класса, который будет служить обработчиком тиков таймера.

В этом случае и возникнет эта ошибка.

Нужно инициализацию таймера просто перенести в конструктор класса.

Следующий код не даст скомпилироваться:

private readonly Timer _timer = new Timer(state => MyMethod(MyParam), SomeState, SomeInterval, SomeInterval);


В этом случае нужно переписать так:

private readonly Timer _timer;

public MyClass()
{
    _timer = new Timer(state => MyMethod(MyParam), SomeState, SomeInterval, SomeInterval);
}

.

Комментарии

Популярные сообщения из этого блога

A4tech. Мышь не найдена. Пожалуйста, подсоедините мышь.

SVN: Пропали иконки TortoiseSVN.

Вывод в cmd или bat пустой строки.