В коде ниже я должен объявить метод MdrResponseInterpreter
static
в противном случае у меня есть ошибка компиляции.Почему делегат должен быть статичным?
class.... {
private StandardBuilder _mdrResponseBuilder =
new StandardBuilder(MdrResponseInterpreter);
public static bool MdrResponseInterpreter(DNMessageDeliverer builder,
DNFieldSet message)
{
// .... work
}
Почему? Как _mdrResponseBuilder
не статична я ожидаю, что MdrResponseInterpreter
должен быть в состоянии получить доступ к this
Там определенно * есть * объект в этой точке (в противном случае, где назначается значение?), Но вам еще не разрешен доступ к этому. –
Конечно, я был неясен. Обновлен мой ответ. – Botz3000
Я бы сказал, что это неясно. Объект * does * существует, полностью. Возможно, он не был полностью * инициализирован *, но это верно и в теле конструктора. (Могут быть другие производные тела конструкторов, которые еще не запущены, тоже ...) –