1
如何使用表達式目錄樹,使拉姆達這樣添加事件處理程序和表達式樹
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 2017-04-06 14:29:58
@ l33t:如果沒有更清晰的問題,很難寫出適當的代碼。如果您處於類似的位置,但無法使其工作,請用[mcve]問一個新問題。 – 2017-04-06 14:31:27