私はこの表現している:コンパイルされた式ツリーは誤解ですか?
Expression<Func<string, bool>> f = s => s.Length < 5;
ParameterExpression p = Expression.Parameter (typeof (string), "s");
MemberExpression stringLength = Expression.Property (p, "Length");
ConstantExpression five = Expression.Constant (5);
BinaryExpression comparison = Expression.LessThan (stringLength, five);
Expression<Func<string, bool>> lambda= Expression.Lambda<Func<string, bool>> (comparison, p);
//ができます:テスト
Func<string, bool> runnable = lambda.Compile();
Console.WriteLine (runnable ("kangaroo")); // False
Console.WriteLine (runnable ("dog")); //True
は、私はそれが何をコンパイルん.Compile()
についてお聞きしたいですか?最初の実行と後の実行の違いは何ですか...?
コンパイルは/どのようにそれは私を助けない何後で再び起こり、一度ではなくたまたま何か....
すべきですか?
何のツールあなたは、この式ツリーグラフの画像を生成するために使用しましたか? – Anastasiosyal
は、その著書http://i.stack.imgur.com/Y5ejU.jpg –
から@Anastasiosyalああ、なるほど、私は一瞬のためにいくつかの素晴らしいビジュアライザが欠けていたと思いました。私は、@ gcvcdcampによる[wpf式ツリービジュアライザー](http://www.codeproject.com/Articles/83465/ExpressionTree-Visualizer-in-WPF)もあると思います。興味深いプロジェクトは、[Graph#](http://graphsharp.codeplex。など)を使って、表現ツリーをグラフとしてレンダリングすることをサポートすることです。私はこのようなグラフがどんなに単純な表現でも非常に忙しくなるのを見ることができます。 – Anastasiosyal