Подтвердить что ты не робот

No-op лямбда

У меня есть событие на одном из моих классов, к которому я хочу привязать обработчик. Однако мне не нужен обработчик, чтобы что-либо сделать, поскольку я просто проверяю поведение класса с прикрепленными обработчиками или нет.

Сигнал события выглядит следующим образом:

public event EventHandler<EventArgs> Foo;

Итак, я хочу сделать что-то вроде:

myClass.Foo += ();

Однако это не является допустимым лямбда-выражением. Каков самый краткий способ выразить это?

4b9b3361

Ответ 1

myClass.Foo += (s,e) => {};

или

myClass.Foo += delegate {};

Ответ 2

(x,y) => {} //oops forgot the params

OK?:)

Или

delegate {}

Ответ 3

Попробуйте следующее:

myClass.Foo += delegate {};

Ответ 4

Вместо того, чтобы присоединить делегата впоследствии, более распространенным способом является его немедленное назначение:

public event EventHandler<EventArgs> Foo = delegate {};

Я предпочитаю использовать синтаксис анонимного метода над выражением лямбда здесь, поскольку он будет работать с различными различными сигнатурами (по общему признанию, не с параметрами out или возвращаемыми значениями).

Ответ 5

Попробуйте следующее:

myClass.Foo += (s,e) => {};

Ответ 6

Прикрепите событие через лямбда, например:

myClass.Foo += (o, e) => {
    //o is the sender and e is the EventArgs
};