C#表达式树的构建(基础了解)

本文介绍了C#中的表达式树概念,通过示例详细展示了如何拆分和构建表达式树,包括简单的加法表达式、lambda表达式以及更复杂的乘法表达式。总结了拆分表达式和从叶到根构建表达式树的重要性。
摘要由CSDN通过智能技术生成

1.概念:由代码编写的逻辑以表达式的方式存储在树状的结构里

2.拆分表达式:
var sum=1+2;
表达式的整体为:var sum=1+2;
左部分 var sum
隐式声明关键字 var
变量声明 sum
赋值运算符 =
右部分 1+2
左操作数 1
运算符 +
右操作数 2

3.在编程过程中,实际对应的类在System.Linq.Expression中
Demo:构建 参数:整型 返回值:整型 操作:参数+5
Expression<Func<int, int>> Add = (num) => num + 5;
var DemoFunc=Add.Compile();
Console.WriteLine(DemoFunc(5));

这里的操作很简单,先创建一个lambda表达式(num)=>num+5;
因为是参数为整型,返回类型也为整型所以将其分配给Expression<Func<int,int>> 变量Add中
但这不是创建表达式树的唯一方法。 很多情况下,可能需要在运行时在内存中生成一个表达式。

表达式树的构建必须是从叶到根的构建
Demo:return 1+2
Expression<Func> Result3=()=>1 + 2;
var result=Result3.Compile();
Console.WriteLine(result());

这里的叶子节点是常量1 2,常量使用Expression.Constant创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值