我有这样的表达:编译的表达式树木误解?
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 2012-02-26 14:12:04
@Anastasiosyal它从一本书http://i.stack.imgur.com/Y5ejU.jpg – 2012-02-26 14:38:42
啊,我明白了,我以为我失踪了片刻一些伟大的Visualiser的。我猜,@ gcvcdcamp也有[wpf表达式树可视化工具](http://www.codeproject.com/Articles/83465/ExpressionTree-Visualizer-in-WPF)。一个有趣的项目可能是使用类似[Graph#](http://graphsharp.codeplex)的方式将表达式树渲染为图形。虽然我可以看到这样的图表如何能够随着任何不重要的表达式迅速变得非常忙碌。 – Anastasiosyal 2012-02-26 14:49:35