zoukankan      html  css  js  c++  java
  • 委托,匿名方法

    1、实名委托        
    //定义委托
    private delegate string ChangeEventHandle(); private delegate int intEventHandle(int ID); private void button1_Click(object sender, EventArgs e) {
    //new一个委托 ChangeEventHandle c
    = new ChangeEventHandle(Function); this.Text = c.Invoke(); //委托调用 this.Text = c(); } private void button2_Click(object sender, EventArgs e) { intEventHandle c1 = new intEventHandle(Function); this.Text = c1(5).ToString(); } private string Function() { return "delegate"; } private int Function(int ID) { return ID*ID; }

     2、匿名委托,不定义名称

    List<int> lst = new List<int>(){0,2,3,8,9};

    List<int> find = lst.FindAll(delegate(int i) { return i > 5; });

    结果8,9

            private void test()
            {
                label1.Invoke(new EventHandler(delegate(object o, EventArgs e)
                {
                    label1.Text = "ceshi";
                }));
    
                this.button1.Invoke(new MethodInvoker(delegate()
                {
                    label1.Text = "ceshi";
                })); 
    
            }

    匿名方法

                delegate string MyDelagate(string val);
               //中括号部分定义来了一个方法,没有名称,编译器会定指定一个名称,my为委托的名称
                MyDelagate my = delegate(string param)
                {
                    string str2 = " 匿名方法内部 ";
                    return param + str1 + str2;
                };

           实名方法
    delegate
    string MyDelagate(string val); private void button2_Click(object sender, EventArgs e) { MyDelagate my = new MyDelagate(fun); my("实名方法"); } static void MyFun(string str) { Console.Write(str); }
  • 相关阅读:
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    Java web的读取Excel简单Demo
    Java一些常见的出错异常处理
    JSTL截取字符串
    DATAX动态参数数据传递
    DataX实现oracle到oracle之间的数据传递
    DataX安装环境搭建
  • 原文地址:https://www.cnblogs.com/xiaochun126/p/4158137.html
Copyright © 2011-2022 走看看