c# - 如何获得表达结果?

标签 c# expression

我构建了一个如下所示的表达式:

Expression left = Expression.Constant(5, typeof(int));
Expression right = Expression.Constant(6, typeof(int));
Expression result = Expression.Add(left,right);

那么,能否通过表达式结果得到“5+6”的真实结果呢?

最佳答案

我认为您需要将其编译为 Func:

Expression left = Expression.Constant(5, typeof(int));
Expression right = Expression.Constant(6, typeof(int));
Expression result = Expression.Add(left,right);

var compiled = Expression.Lambda<Func<int>>(result).Compile();
Console.WriteLine(compiled.Invoke());

Expression tree docs

Try it online

关于c# - 如何获得表达结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54940730/

相关文章:

debugging - 如何在 Intellij Idea 中的监视表达式更改事件上注册断点?

c# - 重用模型属性作为 SelectList 项的来源会导致在一个选择控件中选择了不正确的选项

c# - 如何从 .NET 创建/打印 DataMatrix 条码

c# - Xamarin Forms中如何实现CrossPushNotification插件?

javascript - AngularJS 没有用范围内的动态数据替换表达式?

java - 正则表达式,匹配不带 "http://"和任何其他 "/"的url

c# - Expression.Compile 在 Monotouch 上做了什么?

c# - 遍历具有多种类型的通用列表

c# - 我可以在没有 list 的情况下部署我的应用程序吗?

c# - 如何动态调用具有已知参数基类型的委托(delegate)?