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. Мышь не найдена. Пожалуйста, подсоедините мышь.

Как экспортировать контакты из iPhone

The type or namespace name 'IISOle' could not be found (are you missing a using directive or an assembly reference?)