说明(2017-11-21 18:51:32):

1. 例子为求1~100的和,答案应该是5050(小学学算盘的时候,我爹就让我算,从1拨到100是多少呀?当时的我年幼无知,还不知道高斯小时候的故事,扒拉了半天高高兴兴的去说答案,结果说不对,艹!)

2. Lambda表达式是将匿名委托给简化了的写法,省去了delegate关键字,省去了参数类型,但是要保证参数类型不能出错,也就是跟委托定义时的参数类型一致。

3. 其他没啥好说的看注释,下一讲用Lambda表达式求水仙花数。

正常写法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace _05_匿名委托
{
class Program
{
static void Main(string[] args)
{
//调用方法
Console.WriteLine(GetSum(, ));
Console.ReadKey();
}
//定义求和的方法
public static int GetSum(int x, int y)
{
int sum = ;
for (int i = x; i <= y; i++)
{
sum += i;
}
return sum;
}
}
}

匿名委托写法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace _05_匿名委托
{
class Program
{
public delegate int MyDel(int x, int y);
static void Main(string[] args)
{
//记得最后要加分号,因为是赋值,跟js一样。
MyDel myDel = delegate(int x, int y)
{
//在委托里面定义求和的方法,匿名委托用于只需要调用一次的方法,省的再起个方法名了(说的就是上面的GetSum!)
int sum = ;
for (int i = x; i <= y; i++)
{
sum += i;
}
return sum;
};
Console.WriteLine(myDel(, ));
Console.ReadKey();
}
}
}

Lambda表达式写法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace _05_匿名委托
{
class Program
{
public delegate int MyDel(int x, int y);
static void Main(string[] args)
{
//尼玛连参数类型都省了,还有那个delegate关键字,太特么懒了!
MyDel myDel = (a, b) =>
{
int sum = ;
for (int i = a; i <= b; i++)
{
sum += i;
}
return sum;
};
Console.WriteLine(myDel(, ));
Console.ReadKey();
}
}
}

C#学习笔记(28)——匿名委托和Lambda表达式的更多相关文章

  1. 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底

    本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...

  2. C#,委托,匿名委托,Lambda表达式

    1. 委托是什么? (1) 从数据结构来讲,委托是和类一样是一种用户自定义类型.  (2) 从设计模式来讲,委托(类)提供了方法(对象)的抽象.概括的说:委托是方法的抽象. 2. 委托类型的定义: 委 ...

  3. 匿名委托与Lambda表达式

    通过使用匿名委托(匿名方法),使编程变得更加灵活,有关委托与匿名委托请参考我的前一篇Blog<委托与匿名委托>. 继续之前示例,代码如下: static void Main(string[ ...

  4. 帮助理解委托、匿名委托、Lambda表达式还有事件

    写了一个小程序,能够很好的认识到这三个的用法 namespace Lambda { /// <summary> /// 实现根据指定运算形式 输出结果 /// </summary&g ...

  5. 委托、匿名委托和lambda表达式

    1.委托 在.NET中,委托有点类似于C/C++中的函数指针,但与指针不同的是,委托是一种安全的类型,那么我们就以实现两个数的差为例,先声明一个成员方法: public int CompareTwoV ...

  6. python学习笔记(十三)之lambda表达式

    lambda表达式: 用法 lambda x : 2 * x + 1 其中:前面是参数,后面是返回值. >>> def ds(x): ... return 2 * x + 1 ... ...

  7. C#中匿名委托以及Lambda表达式的学习笔记

    一. C#从1.0到4.0, 随着Linq,泛型的支持,代码越来越简单优雅 , , , , , , , , , }; IEnumerable< select n; newNums = newNu ...

  8. C# 委托 (一)—— 委托、 泛型委托与Lambda表达式

    C# 委托 (一)—— 委托. 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992   版权声明:此文乃博主之原创.鄙人才疏,望大侠斧正.此 ...

  9. 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式

    引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...

随机推荐

  1. 树莓派进阶之路 (008) - 树莓派安装ftp服务器(转)

    vsftpd是开源的轻量级的常用ftp服务器.   1,安装vsftpd服务器 (约400KB) sudo apt-get install vsftpd     2,启动ftp服务 sudo serv ...

  2. block(六)循环引用-b

    在ARC与非ARC环境下对block使用不当都会引起循环引用问题,一般表现为,某个类将block作为自己的属性变量,然后该类在block的方法体里面又使用了该类本身,简单说就是self.theBloc ...

  3. wps 根据单元格值 设置单元格所在行 颜色(大于0 行红色 小于0 行xx色)

  4. 关于varchar(max), nvarchar(max)和varbinary(max)

    在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max).nvarchar(max).varbinary(max) ).大值数据类型最多可以存储2^30-1个字节的数据.这几个 ...

  5. [Aaronyang] 写给自己的WPF4.5 笔记5[数据绑定三巴掌1/3]

    生活总有意外,微笑对待每一件事,无需抱怨--Aaronyang的博客(www.ayjs.net) 博文摘要:数据库下载 教你如何在vs2013中不安装Mssql数据库,使用了Sqlserver Com ...

  6. 【转】给Java说句公道话

    有些人问我,在现有的语言里面,有什么好的推荐?我说:“Java.” 他们很惊讶:“什么?Java!” 所以我现在来解释一下. Java超越了所有咒骂它的“动态语言” 也许是因为年轻人的逆反心理,人们都 ...

  7. HANA初印象

    今天手懒,看了一些SAP HANA 的一些外文介绍,不翻译了,直接剽窃过来,供参考. 1. HANA 是什么东西? “HANA doesn't actually mean anything, but ...

  8. 大批量导入数据的SqlBulkCopy类

     SqlBulkCopy 这个类用于数据库大批量的数据传递,通常用于新旧数据库之间的更新.关键的一点是,即使表结构不同,也可以通过表字段或者字段位置建立映射关系,将所需的数据导入到目标数据库. 下面代 ...

  9. mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

    mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个 ...

  10. 使用 Zipkin 和 Brave 实现分布式系统追踪(基础篇)

    一.Zipkin 1.1.简介 Zipkin 是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper 的论文设计而来,由 Twi ...