LINQ 表达式树可以做的最大值是多少?
它可以定义一个类吗?具有所有声明的名称、修饰符、参数类型和返回类型的方法怎么样?
程序必须总是定义树本身吗?是否可以从给定的 C# 文件生成树?
LINQ 表达式树可以做的最大值是多少?
它可以定义一个类吗?具有所有声明的名称、修饰符、参数类型和返回类型的方法怎么样?
程序必须总是定义树本身吗?是否可以从给定的 C# 文件生成树?
在 C# 3 中,表达式树可以表示表达式。由此得名。而且它们被进一步限制为 C# 表达式的子集——没有赋值表达式,没有涉及指针类型的表达式,等等。
在 C# 4 附带的库中,我们扩展了表达式树库以支持语句树。但是,C# 4 不会自动将语句 lambda 转换为“语句树”。
这是一个明显而有用的特性,我们根本没有时间去了解 C# 4。我们将在假设的未来版本中考虑它。如果您有一个非常棒的语句树用户场景,我很想听听。
对所有这一切的明显进一步扩展是声明树,它将表示类声明、结构声明等。在 C# 语言和表达式树库之间具有完全的同音性会很棒。它将启用各种有趣的元编程场景。但这不会很快发生,所以不要抱太大希望。这更像是我的一个可能永远不会实现的长期梦想。
表达式树:
http://www.interact-sw.co.uk/iangblog/2005/09/30/expressiontrees
http://www.davidhayden.com/blog/dave/archive/2006/12/18/ExpressionTrees.aspx
http: //msdn.microsoft.com/en-us/library/bb397951.aspx
http://community.bartdesmet.net/blogs/bart/archive/2006/11/22/Getting-started-with-C_2300_-3.0-Expression -Trees.aspx
http://blah.winsmarts.com/2006/05/23/demystifying-c-30--part-7-expression-trees.aspx
访客模式:
http://www.dofactory.com/Patterns/PatternVisitor.aspx
http://en.wikipedia.org/wiki/Visitor_pattern