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);
}
.
Комментарии
Отправить комментарий