Comment faire lambda comme cegestionnaire d'événement Ajout et expression arbres
Action<EventHandler<TEventArgs>> adder = vs => GenericEvent += vs
en utilisant des arbres d'expression. Ce code ne fonctionne pas:
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();
Message d'erreur:
L'opérateur binaire AddAssign n'est pas défini pour les types de la System.EventHandler
1[ConsoleApplication.Program+SomeEventArgs]' and 'System.EventHandler
1 [ConsoleApplication.Program + SomeEventArgs].
Alors à quoi ressemblerait le code final? – l33t
@ l33t: Sans plus de clarté dans la question, il est difficile d'écrire le code approprié. Si vous êtes dans une position similaire, mais ne pouvez pas le faire fonctionner, posez une nouvelle question avec un [mcve]. –