C#学习笔记(28)——匿名委托和Lambda表达式
2024-10-19 03:35:22
说明(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();
}
}
}
最新文章
- CentOS 7 ssh脚本 求两个数值的“和”,“乘积”,”商“
- lamp环境搭建(ubuntu)
- 《UML大战需求分析》阅读笔记01
- js的alert和confirm美化
- OpenGL顶点缓冲区对象(VBO)
- oracle中截取某个字符前面和后面的值
- 查看SQL执行计划
- STL六大组件之——分配器(内存分配,好深奥的东西)
- DB天气app冲刺二阶段第十一天(完结)
- Android Fragment 多标签应用
- C#通过FTP账号上传、修改、删除文件 FTPClient
- 一元云购qq互联回调地址错误解决办法
- IE浏览器右键菜单插件开发(上篇)——自定义一个IE右键菜单项
- Inside The C++ Object Model(二)
- 09-OpenLDAP加密传输配置
- [Android Security] APK自我保护 - DEX/APK校验
- Golang之http编程
- 关于51精确延时及keil仿真延时时间
- linux中查看结构体和宏
- php学习六:字符串