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中去
    自动驱动未来
  • 相关阅读:
    TCP/IP(三)数据链路层~2
    TCP/IP(三)数据链路层~1
    TCP/IP(二)物理层详解
    Maven(六)之依赖管理
    RAID : 独立磁盘冗余阵列(Redundant Array of Independent Disks)
    Oracle启动两个监听
    Oracle服务器修改IP后
    su: cannot set user id: Resource temporarily unavailable
    hadoop报错:java.io.IOException(java.net.ConnectException: Call From xxx/xxx to xxx:10020 failed on connection exception: java.net.ConnectException: 拒绝连接
    spring boot 实现mybatis拦截器
  • 原文地址:https://www.cnblogs.com/rb-huang/p/10750130.html
Copyright © 2011-2022 走看看