zoukankan      html  css  js  c++  java
  • C#匿名委托,匿名函数,lambda表达式

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

    二、委托使用过程: 
    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());
            }
    复制代码

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

    四、Winform窗体中的事件

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

    1.

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

    复制代码
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    复制代码
    自动生成的表达式
    image
    转到定义,可以查看Load事件的定义
    image
  • 相关阅读:
    自我介绍
    你所不知道的良心网站第二弹
    你所不知道的良心网站第一弹
    python网络爬虫之解析网页的XPath(爬取Path职位信息)[三]
    绝对值得一用的十大软件
    现在的建站之旅[]~( ̄▽ ̄)~*
    python网络爬虫之解析网页的BeautifulSoup(爬取电影图片)[三]
    python网络爬虫之解析网页的正则表达式(爬取4k动漫图片)[三]
    python网络爬虫之自动化测试工具selenium[二]
    python网络爬虫之入门(requests模块)[一]
  • 原文地址:https://www.cnblogs.com/dawasai/p/4443903.html
Copyright © 2011-2022 走看看