3

LINQ 表达式树可以做的最大值是多少?

它可以定义一个类吗?具有所有声明的名称、修饰符、参数类型和返回类型的方法怎么样?

程序必须总是定义树本身吗?是否可以从给定的 C# 文件生成树?

4

2 回答 2

15

在 C# 3 中,表达式树可以表示表达式。由此得名。而且它们被进一步限制为 C# 表达式的子集——没有赋值表达式,没有涉及指针类型的表达式,等等。

在 C# 4 附带的库中,我们扩展了表达式树以支持语句树。但是,C# 4 不会自动将语句 lambda 转换为“语句树”。

这是一个明显而有用的特性,我们根本没有时间去了解 C# 4。我们将在假设的未来版本中考虑它。如果您有一个非常棒的语句树用户场景,我很想听听。

对所有这一切的明显进一步扩展是声明树,它将表示类声明、结构声明等。在 C# 语言和表达式树库之间具有完全的同音性会很棒。它将启用各种有趣的元编程场景。但这不会很快发生,所以不要抱太大希望。这更像是我的一个可能永远不会实现的长期梦想。

于 2009-09-16T15:18:42.043 回答