C#中委托,匿名函数,lamda表达式复习
一、委托
1.就给类比较,类用class声明,委托用delegate声明。
2.委托要指向一个真正的方法。
3.委托的签名,要和指向的方法一样。
//1.声明一个委托
public delegate void DelSayHi(string name); public static void SayHiChinese(string name)
{
Console.WriteLine("你好?" + name);
}
public static void SayHiEnglish(string name)
{
Console.WriteLine("Nice to meet you" + name);
} static void Main(string[] args)
{
//2.实例化委托,指向一个方法
DelSayHi del = new DelSayHi(SayHiChinese);
//DelSayHi del =SayHiChinese;写法二 //调用
del("张三");
}
这种写法,可能会有疑问,还不如直接去调用了。且往下边继续看。
//1.声明一个委托
public delegate void DelSayHi(string name);
static void Main(string[] args)
{ //2.指向方法
Test("张三", SayHiChinese);
Test("TOM", SayHiEnglish);
} public static void Test(string name,DelSayHi del)
{
//3.调用
del(name);
} public static void SayHiChinese(string name)
{
Console.WriteLine("你好?" + name);
}
public static void SayHiEnglish(string name)
{
Console.WriteLine("Nice to meet you" + name);
}
这一次,我中间又封装了一个方法,这次将方法当成一个参数传到另一个方法里。记得刚开始接触委托时,就是成天鼓捣这句话。
二、匿名函数
按上面的写法,假如说,我只会用到这个方法一次,那么有没有更简洁的写法。答案是有。
public delegate void DelSayHi(string name);
static void Main(string[] args)
{
DelSayHi del = delegate (string name) //匿名函数
{
Console.WriteLine("你好" + name);
};
del("张三");
}
这种写法叫做匿名函数。
三、lamda表达式
其实还有更简单的写法
public delegate void DelSayHi(string name);
static void Main(string[] args)
{
DelSayHi del = DelSayHi del = (string name) => { Console.WriteLine("你好" + name); }; //lamada表达式
del("张三");
}
这种写法就是lamda表达式。
其实匿名函数和lamda都是委托。
C#中委托,匿名函数,lamda表达式复习的更多相关文章
- (28)C#委托,匿名函数,lambda表达式,事件
一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...
- Qt中使用匿名函数lambda表达式
一.为什么要使用匿名函数lamdba 首先,lambda表达式可以使代码变得简单,C++中,一个lambda表达式表示一个可调用的代码单元.如代码: #include <QCoreApplica ...
- python 中的匿名函数lamda和functools模块
为什么 要把匿名函数和functools模块写在一起? 因为 lamda函数和functools模块都是对函数一种增强或者是简化. 匿名函数: 为了解决那些功能很简单的需求而设计一次性的需求函数 #& ...
- 【C#】委托中的匿名函数与lambda
将方法作为方法的参数 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使 ...
- c#中匿名函数lamb表达式
c#中匿名函数lamb表达式 实例一:(其实,这样都是些语法糖) using System; using System.Collections.Generic; using System.Linq; ...
- 【Unity|C#】基础篇(9)——匿名函数 / Lambda表达式
[学习资料] <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
- jquery'中的匿名函数
//jquery'中的匿名函数 (function(){ alert("this is a test"); })(); //和这个基于jQuery的比较下: $(funct ...
- php中的匿名函数和闭包(closure)
一:匿名函数 (在php5.3.0 或以上才能使用) php中的匿名函数(Anonymous functions), 也叫闭包函数(closures), 允许指定一个没有名称的函数.最常用的就是回调函 ...
- php中的匿名函数(Anonymous functions)和闭包函数(closures)
一:匿名函数 (在php5.3.0 或以上才能使用) php中的匿名函数(Anonymous functions), 也叫闭包函数(closures), 允许指定一个没有名称的函数.最常用的就是回调函 ...
- js中的匿名函数和匿名自执行函数
1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景: <input type="button" value="点击" id ...
随机推荐
- mssql sqlserver in 关键字在值为null的应用举例
转自:http://www.maomao365.com/?p=6873 摘要: 下文通过案例分析in 关键字在值为null的应用举例, 分析出not in关键字在null值产生的异常信息 如下所示: ...
- python连接sqlserver数据库
1.准备工作 python3.6连接sqlserver数据库需要引入pymssql模块 pymssql官方:https://pypi.org/project/pymssql/ 没有安装的话需要: pi ...
- 在Django中接收文件并存储
首先是一个views函数的例子 def get_user_profiles(request): if request.method == 'POST': myFile = request.FILES. ...
- python3 之视频抽针
import cv2 import os Path = "C:/Users/zl3269/Desktop/test/video/" # 视频的格式 /aisg-server/Dat ...
- python3+beautifulsoup4爬取汽车信息
import requests from bs4 import BeautifulSoup response = requests.get("https://www.autohome.com ...
- UnicodeEncodeError: 'ascii' codec can't encode characters in position
UnicodeEncodeError: 'ascii' codec can't encode characters in position python运行时出现这个错误,解决方法如下: 加入如下语句 ...
- 4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图
目录 目录 前言 (一)竖值条形图 (二)水平条形图 1.使用bar()绘制: 2.使用barh()绘制: (三)复杂的条形图 1.并列条形图: 2.叠加条形图: 3.添加图例于数据标签的条形图: 目 ...
- LeetCode算法题-Sum of Left Leaves(Java实现)
这是悦乐书的第217次更新,第230篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第85题(顺位题号是404).找到给定二叉树中所有左叶的总和.例如: 二叉树中有两个左叶 ...
- March 11th, 2018 Week 11th Sunday
All good things must come to an end. 好景无常. Love is when the other person's happiness is more importa ...
- 聚类——GAKFCM的matlab程序
聚类——GAKFCM的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在聚类——GAKFCM文章中已介绍了GAKFCM算法的理论知识, ...