zoukankan      html  css  js  c++  java
  • 委托-匿名函数-lambda表达式的理解,用法,演进关系

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    namespace Delegate.test
    {
        public delegate void Value(string str);
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 第一种委托的最原始用法时才需要有这个方法
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            //private  void  Method(string str)
            //{
            //    label1.Text = str;
            //}
            ///委托的理解:
            ///delegate定义一个事情需要委托给别人做,但是给谁做不确定;
            ///事件发生,NEW委托时,将一个方法作为实参写进NEW委托的语句里。此时表示委托给了该方法去做;
            ///new后新建的委托名称.Invoke(实参)。即:给委托的方法传送实参。
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                ///第一种,委托的最原始用法
                //Value value = new Value(Method);//所谓委托,就是Delegate定义有这么个事件需要别人帮忙做,
                //value.Invoke(textBox1.Text);    //由谁做不确定。在事件发生时NEW委托类,这个时候把哪个方法
                //                                //作为参数写进里面,就是委托给了那个方法。
                //                                 //然后再调用该重载后的委托类。这就是委托的全部含义
                ///第二种,委托的匿名用法
                //Value value = delegate (string str) { label1.Text = str; };//省略method方法,公式写在了这里
                //value.Invoke(textBox1.Text);//上一行直接省略了需要委托的对象(即method方法),便于阅读
                ///第三种方法,lambda表达式
                Value value = (str) => { label1.Text = str; };
                value.Invoke(textBox1.Text);
            }
        }
    }
     
    winform窗体如图:
    将textBox1.text写入到label1.text中去
    自动驱动未来
  • 相关阅读:
    Oracle执行查询报错ORA-01034: ORACLE not available
    shell echo单行和多行文字定向写入到文件中
    oracle查看EM管理器状态显示Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
    正确使用 Element $confirm 方法,联调删除接口
    Express 统一配置响应头 header 方法
    jquery.i18n.properties.js 实现多语言
    navicat导出数据结构到word
    RabbitMQ用户角色及权限控制
    chrome谷歌浏览器自动填充用户名密码错位
    JVM性能调优参数整理
  • 原文地址:https://www.cnblogs.com/rb-huang/p/10750130.html
Copyright © 2011-2022 走看看