匿名函数 和 拉姆达表达式
匿名函数
匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法。可以通过在代码块后面跟上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();}}
匿名函数 和 拉姆达表达式相关推荐
- C# 匿名方法和拉姆达表达式
"` "`代码如下: using System; using System.Collections.Generic; using System.Linq; using System ...
- C#拉姆达(=)表达式
前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似 ...
- 拉姆达表达式相关知识
拉姆达表达式 拉姆达表达式是创建匿名函数的另一种方法.因此,拉姆达表达式可以赋值给委托.虽然主要在操作LINQ中使用拉姆达表 达式,但是这种表达式也适用于委托和事件. 拉姆达表达式运算符 ...
- 一句话学会拉姆达表达式(JAVA)
LambdaExpress 一 . 理论 1.1 是什么 Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lam ...
- SqlSugar常用查询实例-拉姆达表达式
SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表SqlSugarClient db = SugarContext.GetInstance() ...
- java1.8 Lambda拉姆达表达式深入探究
当我们遇到下面情况时: SingleObj.getInstance().setRunnable(new Runnable() {@Overridepublic void run() {} }); 编译 ...
- 拉姆达表达式 追加 条件判断 ExpressionFuncT, bool
拉姆达表达式 追加 条件判断 Expression<Func<T, bool>> 2014/11/13 14:47:59 虫虫飞520 程序员俱乐部 我要评论(0) ...
- 拉姆达表达式学习(1)
我曾经遇到一个项目,项目里面需要经常对一系列的同类型集合进行操作,如对集合进行增加元素,删除集合的指定索引的元素等等. 我们可以使用ArrayList来进行.如 1 ArrayList stringL ...
- 拉姆达表达式学习(2)
本文转载自:http://www.cnblogs.com/zhouji432600/archive/2010/05/30/1747383.html 在.net3.5里面,委托的定义和实现被大大的简化了 ...
最新文章
- 11月最佳机器学习开源项目Top10!
- Grafana 6.4 正式发布!
- centos7下安装gcc7
- 【深度学习】2个经典的练手CNN源码与MNIST数据集测试结果
- 遍历同辈节电的方法_jQuery遍历
- 设计和实时视图不一样_新宝骏“星际几何”设计理念,演绎不一样的跨界融合...
- 使用screen管理后台程序
- 统计学习方法 学习笔记(五):支持向量机(下)
- 看故事学知识,这篇Java代理的文章妙啊!
- git submodule 子模块的管理和使用
- 《架构师》反思:系统可靠性
- ASP.NET验证控件祥解[转]
- linux驱动目录在哪里,详细讲解Linux驱动程序
- 怎样用html播放喜马拉雅音频文件格式,喜马拉雅音频提取方法
- 简单的开源日志Log4D delphi 6---delphi xe 10全可用
- 解读SSD目标检测方法
- 传智黑马java基础学习——day32
- 利用Python的sympy包求解一元三次方程
- 价值工程杂志价值工程杂志社价值工程编辑部2022年第23期目录
- 未得冠军的运动员也有教练——Leo鉴书71