• 委托,匿名方法


    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); }
  • 相关阅读:
    《完美应用ubuntu》之全面管理ubuntu软件源
    ubuntu下安装CAJ阅读器
    re正则表达式方法
    Xpath做数据解析
    C++异常处理
    异常处理
    指针与引用
    总结:开放透明的环境对于大数据团队的重要性
    java控制流
    3. 最小生成树
  • 原文地址:https://www.cnblogs.com/xiaochun126/p/4158137.html
Copyright © 2020-2023  润新知