4
我有一個簡單的lambda表達式,我想編譯並調用LambdaExpression變量引用從範圍,但未定義
Expression< Func< Commands, bool>> expression = c => c.IsValid("test");
但是當我做到以下幾點:
LambdaExpression le = Expression.Lambda(expression.Body);
object result = le.Compile().DynamicInvoke();
編譯投錯誤:
variable 'c' of type 'ConsoleApplication1.Commands' referenced from scope '', but it is not defined
你如何設置這個表達式的實例變量?
我不想直接編譯表達式,因爲我解析它來將它轉換成另一種語言/語法。對我來說,解決方案是創建一個BlockExpression,並在該表達式中將參數分配給我想要的對象的實例。 (只花了我一天的時間來解決這個問題......) – KanTube