匿名函数

匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法。可以通过在代码块后面跟上delegate关键字来创建匿名方法。

    delegate void print();delegate string print2(string s);class Program{static void Main(string[] args){print p1 = delegate { Console.WriteLine("不带参数的匿名委托!"); };print2 p2 = delegate(string msg) { Console.WriteLine("{0}的匿名委托", msg); return ""; };p1();p2("带参数");Console.Read();}}

拉姆达表达式

拉姆达表达式是创建匿名函数的另一种方法。因此,拉姆达表达式可以赋值给委托。虽然主要在操作LINQ中使用拉姆达表达式,但是这种表达式也适用于委托和事件。

拉姆达表达式运算符:

所有的拉姆达表达式都是用新的拉姆达运算符“=>”,该运算符讲拉姆达表达式分为两个部分:表达式左边指定了输入参数,而右边则是拉姆达主体。“=>”有时被描述为“转到”或“成为”

共有两种类型的拉姆达表达式,1.表达式拉姆达,2.语句拉姆达

表达式拉姆达:

在表达式拉姆达中,=>运算符右边的表达式对运算符左边指定的参数执行操作。该表达式的结果成为拉姆达运算符的结果并返回。

一个参数基本形式为:param=>expr    多个参数基本形式为:(param-list) =>  expr

如果不需要参数则必须使用空的括号。

 delegate string print();delegate string print2(string s);delegate string print3(string s, string w);delegate void print4(int count);class Program{static void Main(string[] args){print p1 = () => "拉姆达表达式1";print2 p2 = a => string.Format("{0}拉姆达表达式", a);print3 p3 = (a, b) => string.Format("{0}拉姆达表达式{1}", a, b);print4 p4 = count => { for (int i = 0; i < count; i++) { Console.WriteLine("语句拉姆达{0}", i); } };Console.WriteLine(p1());Console.WriteLine(p2("带参数"));Console.WriteLine(p3("带参数", "--多参数"));Console.WriteLine("——————————————————");p4(4);Console.Read();}}

匿名函数 和 拉姆达表达式相关推荐

  1. C# 匿名方法和拉姆达表达式

    "` "`代码如下: using System; using System.Collections.Generic; using System.Linq; using System ...

  2. C#拉姆达(=)表达式

    前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似 ...

  3. 拉姆达表达式相关知识

    拉姆达表达式 拉姆达表达式是创建匿名函数的另一种方法.因此,拉姆达表达式可以赋值给委托.虽然主要在操作LINQ中使用拉姆达表        达式,但是这种表达式也适用于委托和事件. 拉姆达表达式运算符 ...

  4. 一句话学会拉姆达表达式(JAVA)

    LambdaExpress 一 . 理论 1.1 是什么 ​ Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lam ...

  5. SqlSugar常用查询实例-拉姆达表达式

    SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表SqlSugarClient db = SugarContext.GetInstance() ...

  6. java1.8 Lambda拉姆达表达式深入探究

    当我们遇到下面情况时: SingleObj.getInstance().setRunnable(new Runnable() {@Overridepublic void run() {} }); 编译 ...

  7. 拉姆达表达式 追加 条件判断 ExpressionFuncT, bool

    拉姆达表达式 追加 条件判断 Expression<Func<T, bool>> 2014/11/13 14:47:59  虫虫飞520   程序员俱乐部   我要评论(0) ...

  8. 拉姆达表达式学习(1)

    我曾经遇到一个项目,项目里面需要经常对一系列的同类型集合进行操作,如对集合进行增加元素,删除集合的指定索引的元素等等. 我们可以使用ArrayList来进行.如 1 ArrayList stringL ...

  9. 拉姆达表达式学习(2)

    本文转载自:http://www.cnblogs.com/zhouji432600/archive/2010/05/30/1747383.html 在.net3.5里面,委托的定义和实现被大大的简化了 ...

最新文章

  1. 11月最佳机器学习开源项目Top10!
  2. Grafana 6.4 正式发布!
  3. centos7下安装gcc7
  4. 【深度学习】2个经典的练手CNN源码与MNIST数据集测试结果
  5. 遍历同辈节电的方法_jQuery遍历
  6. 设计和实时视图不一样_新宝骏“星际几何”设计理念,演绎不一样的跨界融合...
  7. 使用screen管理后台程序
  8. 统计学习方法 学习笔记(五):支持向量机(下)
  9. 看故事学知识,这篇Java代理的文章妙啊!
  10. git submodule 子模块的管理和使用
  11. 《架构师》反思:系统可靠性
  12. ASP.NET验证控件祥解[转]
  13. linux驱动目录在哪里,详细讲解Linux驱动程序
  14. 怎样用html播放喜马拉雅音频文件格式,喜马拉雅音频提取方法
  15. 简单的开源日志Log4D delphi 6---delphi xe 10全可用
  16. 解读SSD目标检测方法
  17. 传智黑马java基础学习——day32
  18. 利用Python的sympy包求解一元三次方程
  19. 价值工程杂志价值工程杂志社价值工程编辑部2022年第23期目录
  20. 未得冠军的运动员也有教练——Leo鉴书71

热门文章

  1. 对计算机的认识与感想
  2. 对计算机的理解和认识
  3. Git提交代码失败: empty ident name (for ) not allowed
  4. 【2022年9月】237条微信内置浏览器UA
  5. python append使用方法
  6. 11.小白初学日记 STM32F429 HAL库 STM32程序启动过程
  7. 游戏性能优化指南:如何将HTML5性能发挥到极致
  8. 【软件测试】数据库大厂面试真题解析(二叉树算法纯干货!)
  9. 阿里云配置二级域名与nginx代理踩坑
  10. 进入U盘PE系统无法识别硬盘分区的原因分析和解决方法