c# - LINQ 表达式树最多可以做什么?

标签 c# visual-studio linq abstract-syntax-tree

LINQ 表达式树最大能做多少?

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

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

最佳答案

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

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

这是一个显而易见且有用的特性,我们根本没有时间在 C# 4 中使用它。我们将在假设的 future 版本中考虑它。如果您有非常棒的语句树用户场景,我很乐意听听。

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

关于c# - LINQ 表达式树最多可以做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430738/

相关文章:

c# - 如何在ajax回发后从代码隐藏调用javascript函数

c# - 如何从应用程序级别使用 Azure 中的服务配置?

c# - 是否可以获取从 http 响应(包括 header )收到的总字节数?

visual-studio - 愚蠢的 Visual Studio 待更改问题

c# - 分区列表<T>?

c# - 隐式运算符转换和泛型

c# - 如何在 ASP.NET 中尝试 3 次无效密码后阻止用户名

visual-studio - 在 Visual Studio 2010 中显示多于(或少于)六个最近的项目

c# - 在 QueryBuilder 中使用 or 运算符连接 where 查询

c# - 使用 LINQ 优化基于值的搜索算法