委托和匿名委托的比较

点击打开链接


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

比较一下:

 

复制代码
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、付费专栏及课程。

余额充值