Как сделать лямбда, как этотДобавление обработчика событий и деревья выражений
Action<EventHandler<TEventArgs>> adder = vs => GenericEvent += vs
с помощью деревьев выражений. Этот код не работает: сообщение
Expression<Func<EventHandler<TEventArgs>>> handler =() => GenericEvent;
var vs = Expression.Parameter(typeof(EventHandler<TEventArgs>), "vs");
var adder = Expression.Lambda<Action<EventHandler<TEventArgs>>>(
Expression.AddAssign(handler.Body, vs), vs).Compile();
Ошибка:
Бинарный оператор AddAssign не определен для типов 'System.EventHandler
1[ConsoleApplication.Program+SomeEventArgs]' and 'System.EventHandler
1 [ConsoleApplication.Program + SomeEventArgs]'.
Итак, как бы выглядел последний код? – l33t
@ l33t: Без большей ясности в вопросе трудно написать соответствующий код. Если вы находитесь в аналогичной позиции, но не можете заставить его работать, задайте новый вопрос с помощью [mcve]. –