委托和匿名委托的比较

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

比较一下:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值