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

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)一

http://www.xdnf.cn/news/4528.html

相关文章:

  • LWIP的超时事件笔记
  • 【python】使用Python和BERT进行文本摘要:从数据预处理到模型训练与生成
  • vllm命令行启动方式并发性能实测
  • 联想Horizon 2系列电脑 参数
  • SpringBoot学生宿舍管理系统开发实现
  • 浏览器跨标签通信的实现原理
  • feign负载均衡
  • linux(centos)联网情况下部署
  • 第一章——typec电路
  • SpirngAI框架 Advisor API详解
  • 【无标题】如何在sheel中运行Spark
  • 基于Django框架开发的企业级IT资产管理系统
  • Topic和Partition的关系是什么?为什么需要分区? (Topic是逻辑分类,Partition是物理分片;提升并行度和扩展性)
  • 【信息系统项目管理师-论文真题】2005下半年论文详解(包括解题思路和写作要点)
  • mint系统详解详细解释
  • 开源数学推理模型DeepSeek-Prover-V2:88.9%通过率+超长推理链
  • 数造科技携 DataBuilder 亮相安徽科交会,展现“DataOps +AI”双引擎魅力
  • 机器学习之嵌入(Embeddings):从理论到实践
  • LangChain第二讲:不设置环境变量也能调用LLM大模型吗?(更简单地调用LLM)
  • LabVIEW表面粗糙度测量及算法解析
  • Python cv2视频处理基础:从入门到实战
  • 我如何在ubuntu截图和屏幕录制,有什么好用的免费的软件吗?
  • C++ 基础复习
  • 蓝牙L2CAP协议概述
  • 微机控制电液伺服拉扭疲劳试验系统
  • 004 Linux基本指令
  • C语言| 递归求两个数的最大公约数
  • 17.Three.js 光照系统之《LightProbe》详解指南(含 Vue 3示例)
  • 准确--Notepad++ 实用的插件介绍
  • 【论文阅读】HunyuanVideo: A Systematic Framework For Large Video Generative Models