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

  • 相关阅读:
    java它 ------ 图形界面(两)
    使用python+flask让你自己api(教程源代码)
    hadoop工作平台梳理
    互斥锁设计,有效的避免死锁
    Cache基础知识OR1200在ICache一个简短的引论
    工作日志2014-08-04
    POSIX 螺纹具体解释(1-概要)
    3.1、Eclipse
    vim cheat sheet
    C++ 学习资料搜寻与学习(第一期)(未完待续)
  • 原文地址:https://www.cnblogs.com/jarod99/p/1376086.html
Copyright © 2011-2022 走看看