Как сделать лямбду подобной
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] '.