2013-01-08 128 views

回答

13

我試探性地使用以下,但不知道這是否是首選的方法:

public static object Evaluate(Expression e) 
{ 
    //A little optimization for constant expressions 
    if (e.NodeType == ExpressionType.Constant) 
     return ((ConstantExpression)e).Value; 
    return Expression.Lambda(e).Compile().DynamicInvoke(); 
} 
+0

如果表達的是一個參數lambda表達式? – phoog

+0

好問題...在我的用例中,我不應該得到lambda表達式,參數化或不。 (我會爲此添加一張支票。) –