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

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

    比较一下:

    Code
        #region 匿名委托

        
    //定义委托
        delegate string lookMe(string s);

        
    protected void LinkButton1_Click(object sender, EventArgs e)
        {
            
    //匿名委托
            lookMe lm = delegate(string name) { return "亲爱的 " + name + ",请看着我的眼睛!"; };

            
    //匿名委托调用
            string name1 = "jarod";
            Label1.Text 
    = lm(name1);
        }

        
    #endregion

    实名委托:

    Code
        #region 委托的应用

        
    //委托的定义
        public delegate string  deleRate(string year);

        
    //三个方法的定义,以供委托调用
        public string year_2009(string s)
        { Response.Write(
    "2009" + s); return "2009" + s; }

        
    //三个方法的定义,以供委托调用
        public string year_2008(string s)
        { Response.Write(
    "2008" + s); return "2008" + s; }

        
    //三个方法的定义,以供委托调用
        public string year_2007(string s)
        { Response.Write(
    "2007" + s); return "2007" + s; }

        
    protected void Button1_Click(object sender, EventArgs e)
        {
            deleRate dr 
    = new deleRate(year_2009);
            dr 
    += year_2008;
            dr 
    += year_2007;

            
    //直接用委托实例调用方法
            Label1.Text = dr("");

            
    //使用委托实现方法调用方法
            Label1.Text = getYear(dr, "");

            
    //使用委托实现方法调用方法,方法名作为参数
            Label1.Text = getYear(year_2008, "");
        }

        
    //执行委托的过程,把参数 year2 传入实际执行的方法中去
        public static string getYear(deleRate dr, string year2)
        { 
    return dr(year2); }

        
    #endregion

  • 相关阅读:
    angular----关于注入HTML
    js ---- 时间格式
    JQuery的父、子、兄弟节点查找方法
    js中的时间与毫秒数互相转换
    $.each ---- 跳出当前的循环
    关于ng-model取不到值的问题
    IOS 物理引擎
    斯坦福 IOS讲义 课件总结 三
    斯坦福 IOS讲义 课件总结 二
    斯坦福 IOS讲义 课件总结 一
  • 原文地址:https://www.cnblogs.com/jarod99/p/1376086.html
Copyright © 2011-2022 走看看