一、类型、变量、实例之间的关系。
类型》变量》实例
类型可以创建变量,实体类可以创建实例,实例可以存储在变量里。

二、委托使用过程: 
1.定义委托(写好签名); 
2.创建委托变量; 
3.给委托变量里追加引用函数(相同的签名)。

三、lambda表达式的由来
private void button1_Click(object sender, EventArgs e)
{
//匿名委托 Func<int, int> del
//类型》变量》实例
//Func是一个匿名委托类型,是一个没有名字的类型
//怎样确定它的签名:需要若干数据类型作为参数(前面的规定参数类型,最后一个规定返回值类型)
//可以直接定义一个委托变量 //匿名函数 delegate(int a) { return a; };
//与普通函数的区别就是将函数名换成了delegate //下面的表达式,就是一个通过匿名委托定义的变量del引用了一个匿名函数
//与int a=1的过程,是相同的道理
//Func<int, int> del = delegate(int a) { return a; };
//MessageBox.Show(del(5).ToString()); //后来发现,匿名函数肯定要放到委托里,参数类型已确定好,于是有了更简捷的写法,把参数类型也省去
//就出现了lambda表达式
Func<int, int> del = a => { return a; };
MessageBox.Show(del(6).ToString());
}

小贴士
定义一个匿名委托变量,好比我们确定要造一把枪,但是这把枪还不能工作,因为它只是完成了功能设计的阶段,枪的功能就是:给它一个子弹(参数),我们得到一个高速飞行的子弹(返回值);
将一个lambda表达式给这个委托变量赋值,好比给这把枪安装枪膛、扳机等内部构造的过程,这时枪可以工作了。

四、Winform窗体中的事件

Winform窗体事件:用预先定义好的委托(EventHandle)的定义的变量(接收两个参数)。 
窗体里自带一个委托变量;我们做的就是给这个变量追加函数。

1.

给窗体Load事件添加一个函数

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{ }
自动生成的表达式
转到定义,可以查看Load事件的定义

C#匿名委托,匿名函数,lambda表达式的更多相关文章

  1. 【Unity|C#】基础篇(9)——匿名函数 / Lambda表达式

    [学习资料] <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  2. C++实现委托机制(三)——lambda表达式封装

    C++.引言:              其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...

  3. 函数:lambda表达式 - 零基础入门学习Python021

    函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...

  4. (28)C#委托,匿名函数,lambda表达式,事件

    一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...

  5. 匿名函数 lambda表达式(lambda expression)

    阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call =  [this, log_directory]() {return pimpl_->backgroundChang ...

  6. 多播委托和匿名方法再加上Lambda表达式

    多播委托就是好几个方法全都委托给一个委托变量 代码: namespace 委托 { class Program { static void math1() { Console.WriteLine(&q ...

  7. Qt中使用匿名函数lambda表达式

    一.为什么要使用匿名函数lamdba 首先,lambda表达式可以使代码变得简单,C++中,一个lambda表达式表示一个可调用的代码单元.如代码: #include <QCoreApplica ...

  8. Python匿名函数——lambda表达式

    如果要定义的函数很简单,一个return语句就能搞定,可以使用lambda表达式来定义, lambda表达式的语法如下: lambda parameters: expression lambda表达式 ...

  9. <JAVA8新增内容>关于匿名内部集合和lambda表达式

    要想说清楚JAVA中的Lambda表达式,必须想讲一下匿名内部类来帮助理解本质. 一.匿名内部类 匿名内部类适合创建那种只需要一次使用的类,例如前面介绍命令模式时所需要的Command对象,匿名内部类 ...

  10. python内置函数,lambda表达式,文件读写

    Lambda表达式: lambda是个匿名函数,自动加return返回 a={ 6:2,8:0, 1:4,-5:6,99:11,4:22} print(sorted(a.items()))#按key排 ...

随机推荐

  1. Egret Engine 2D - 缩放模式和旋转模式说明

    缩放模式和旋转模式说明 缩放模式showAll 常用 noScale noBorder exactFit 次常用 fixedWidth fixedHeight fixedNarrow fixedWid ...

  2. jquery播放mp3

    $("button").on("click",function(){    $('embed').remove();            $('body'). ...

  3. RMAN > BACKUP VALIDATE DATABASE ARCHIVELOG ALL

    使用BACKUP ... VALIDATE 命令: You can use the BACKUP VALIDATE command to do the following:        (1)Che ...

  4. 全面掌握Nginx配置+快速搭建高可用架构 一 random_index_module 随机主页

    修改default.conf 保存重载Nginx,完成配置 自动随机选择主页 string要替换的内容,replacement表示替换后的内容 示例 效果,只替换了第一个 如果要替换所有的,需要用到s ...

  5. WindowsForm ComboBoxList 下拉框带复选框 可以动态添加

    先来张效果图: 1.这里需要对控件进行重写,详细内容如下,对此不感兴趣的可以直接跳过这步,下载本人生成的dll,直接看第二小结,下载链接https://pan.baidu.com/s/1gfzrK5t ...

  6. Android进阶——Android事件分发机制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent

    Android事件分发机制可以说是我们Android工程师面试题中的必考题,弄懂它的原理是我们避不开的任务,所以长痛不如短痛,花点时间干掉他,废话不多说,开车啦 Android事件分发机制的发生在Vi ...

  7. LeetCode做题笔记之动态规划

    LeetCode之动态规划 时间有限只做了下面这几道:70.338.877.96.120.95.647,后续会继续更新 70:爬楼梯 先来道简单的练练手,一道经典的动态规划题目 可以采用动态规划的备忘 ...

  8. html5有哪些新特性、移除了那些元素?

    新增的元素: HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加. 拖拽释放(Drag and drop) API 语义化更好的内容标签(header,nav, ...

  9. jQuery选择器全解析

    1. 基本选择器 1.1 id选择器:$(#id) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  10. redis常用命令--strings

    strings常用命令: set key value:存值 get key:取值 append key value:在值后追加值 strlen key:获取长度 mset key1 value1 ke ...