c# - 我应该如何将 lambda 表达式转换为代码(文本)?

标签 c# lambda

System.Linq.LambdaExpression 转换为可编译代码的“正确”或“最佳”方法是什么?我的应用程序有一种“查询语言”,可以将搜索表达式转换为 lambda。我正在开发一个代码生成器,我正在尝试利用这种查询语言来生成验证表达式。 Expression.ToString() 使用 ExpressionStringBuilder,它将一些节点转换为有效 C# 以外的东西,例如 'AndAlso' 和 'OrElse' 而不是运算符 && ||。理想情况下,我会覆盖 ExpressionStringBuilder,但它是内部的。

最佳答案

您可以实现一个表达式树访问器,将所有节点转换为代码。参见 How to: Implement an Expression Tree Visitor (MSDN)。

关于c# - 我应该如何将 lambda 表达式转换为代码(文本)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407511/

相关文章:

C# 正则表达式在字符串匹配后查找并删除文本

c# - 从文件中读取随机行? C#

c# - 在 C# 中访问 Lync/Skype for Business 对话

c# - "not in"的 Lambda 表达式?

lambda - 是否可以用 java 8 流替换简单的 java for 循环(带索引)

c# - 如何查看语法糖的c#编译器输出

c# - 如何在C#或CS1503中使用通用变量

c# - 扩展方法和 lambda 表达式

c# - 使用 lambda 从数组中选择每隔一个元素

c# - Linq.Select() 中的嵌套表达式方法调用