実行時にラムダ式を作成して評価したいのですが、どうすればいいですか?私は、コレクションや他の値に対してではなく、それ自身で式を実行したい。式から結果を取得する
この段階では、それが作成されると、タイプがExpression<Func<bool>>
であり、値が{() => "MyValue".StartsWith("MyV")}
であることがわかります。
私はその時点でvar result = Expression.Invoke(expr, null);
と呼ぶことができたと思いました。私はブール値の結果を得ました。しかし、それはちょうどInvocationExpression
を返します。デバッガでは{Invoke(() => "MyValue".StartsWith("MyV"))}
のように見えます。
私は近くにいるとは思っていますが、結果を得る方法を理解できません!
ありがとうございました。
感謝まさに私が欠けていたものです。そして明確に説明した:) – Marcus
@Marcus - 喜んで助けて! –
ちょっと構文の砂糖。最後の2行をただ1つの行に置き換えることができます。 ブール結果= expression.Compile()(); –