Тэги

Silverlight (36) WPF (10) IIS (7) Visual Studio (7) SharePoint (6) .Net Framework (5) ODP.NET (5) ASP.NET (4) C# (4) common (4) Network Settings (3) JavaScript (2) MS Office (2) Resharper (2) WCF (2) WEB (2) XPath (2) XSLT (2) ADO.NET (1) APEX (1) CMD (1) CSS (1) EF (1) HTML (1) Hardware bugs (1) Java (1) MS SQL (1) Oracle (1) PDF (1) Version Control (1) XAML (1)

вторник, 30 марта 2010 г.

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

.

Комментариев нет:

Отправить комментарий