zoukankan      html  css  js  c++  java
  • 【总结】委托和匿名委托的比较

    感觉匿名委托使用起来更简洁一点,不用在定义一个专用的委托函数来传递方法,也更可以更好的理解委托。

    一、匿名委托

     1    #region 匿名委托
     2 
     3     //定义委托
     4     delegate string lookMe(string s);
     5 
     6     protected void LinkButton1_Click(object sender, EventArgs e)
     7     {
     8         //匿名委托
     9         lookMe lm = delegate(string name) { return "亲爱的 " + name + ",请看着我的眼睛!"; };
    10 
    11         //匿名委托调用
    12         string name1 = "jarod";
    13         Label1.Text = lm(name1);
    14     }
    15 
    16     #endregion

    二、实名委托

     1  #region 委托的应用
     2 
     3     //委托的定义
     4     public delegate string  deleRate(string year);
     5 
     6     //三个方法的定义,以供委托调用
     7     public string year_2009(string s)
     8     { Response.Write("2009" + s); return "2009" + s; }
     9 
    10     //三个方法的定义,以供委托调用
    11     public string year_2008(string s)
    12     { Response.Write("2008" + s); return "2008" + s; }
    13 
    14     //三个方法的定义,以供委托调用
    15     public string year_2007(string s)
    16     { Response.Write("2007" + s); return "2007" + s; }
    17 
    18     protected void Button1_Click(object sender, EventArgs e)
    19     {
    20         deleRate dr = new deleRate(year_2009);
    21         dr += year_2008;
    22         dr += year_2007;
    23 
    24         //直接用委托实例调用方法
    25         Label1.Text = dr("");
    26 
    27         //使用委托实现方法调用方法
    28         Label1.Text = getYear(dr, "");
    29 
    30         //使用委托实现方法调用方法,方法名作为参数
    31         Label1.Text = getYear(year_2008, "");
    32     }
    33 
    34     //执行委托的过程,把参数 year2 传入实际执行的方法中去
    35     public static string getYear(deleRate dr, string year2)
    36     { return dr(year2); }
    37 
    38     #endregion

    转:https://www.cnblogs.com/jarod99/archive/2009/01/15/1376086.html

  • 相关阅读:
    bzoj2815: [ZJOI2012]灾难
    bzoj1188: [HNOI2007]分裂游戏
    bzoj4538: [Hnoi2016]网络
    bzoj3594: [Scoi2014]方伯伯的玉米田
    bzoj2595: [Wc2008]游览计划
    bzoj3277: 串
    Django开发:(3.2)ORM:多表操作
    Django开发:(3.1)ORM:单表操作
    Django:(2)视图层&模板层
    Django开发:(1)django基础 & url控制器
  • 原文地址:https://www.cnblogs.com/zhangguorenmi/p/13034969.html
Copyright © 2011-2022 走看看