当前位置: 首页 > news >正文

1.3 Expression.Lambda表达式树的介绍

在 C# 中,几乎所有东西都是表达式,比如:

        1).   3是常量表达式 : Expression.Constant

        2).    x,y是变量表达式:Expression.Parameter(typeof(变量类型), 变量名称);

        3).   !a 一元表达式

        4). a+b 二元表达式, 比如Expression.Add

        5).Math.Sin(x)  方法调用表达式, Expression.Call。

        6). new StringBuilder() : new 表达式。

显然表达式的组合可以形成表达式树,比如 2+Math.Sin(x+y).

通过表达式树,可以将代码逻辑表示为数据结构,并动态编译为可执行的委托. 举例如下:

例1:实现 y = a+b的函数功能

方法1),使用委托。
Func<int, int, int>  delFun = (a, b) => (a + b);
int y = delFun(2, 3);    //得到5


方法2),使用lamda表达式 + Expression。

Expression<Func<int, int, int>> myExpress = (a, b) => (a + b);
Func<int, int, int>  delFun = myExpress.Compile();
 int y = delFun(2, 3);  //得到5

方法3)一

相关文章:

  • LVS中的DR模式,直接路由模式
  • LeetCode:二叉树的最大深度
  • 基于DR模式的LVS集群案例
  • oracle 触发器与commit的先后执行顺序
  • Linux如何安装AppImage程序
  • Postman中https和http的区别是什么?
  • 2025数字中国创新大赛-数字安全赛道数据安全产业积分争夺赛决赛Writeup
  • fedora系统详解详细版本
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十)
  • 初学Python爬虫
  • 架设手游使用游戏盾SDK怎么提升网络速度?
  • 音频相关基础知识
  • RTC实时时钟DS1337S/PT7C4337WEX国产替代FRTC1337S
  • webRtc之指定摄像头设备绿屏问题
  • Ubuntu 单机多卡部署脚本: vLLM + DeepSeek 70B
  • 游戏引擎学习第262天:绘制多帧性能分析图
  • MySQL的深度分页如何优化?
  • ESP32开发入门(五):WiFi 开发实践
  • 0509滴滴前端项目常见内容
  • ElementUI 表格el-table自适应高度设置
  • 华泰柏瑞基金总经理韩勇因工作调整卸任,董事长贾波代为履职
  • AI聊天机器人涉多起骚扰行为,专家呼吁加强伦理设计与监管
  • 探索人类的心灵这件事,永远也不会过时
  • 央行:上市公司回购增持股票自有资金比例要求从30%下调至10%
  • 溢价率19.48%,民企番禺置业3.07亿元竞得广州番禺融媒体中心北侧地块
  • 发表“男性患子宫肌瘤”论文的杂志一年发文三千余篇,中介称可提供代写