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

  • 相关阅读:
    Asp.Net MVC3.0中防止跨站的POST
    .NET实现字符串base64编码
    silverlight调用MVC WebApi方法
    MVC实现上传图片的方法
    ASP.NET使用文件上传控件上传图片
    设置网页icon标志
    C# 连接EXCEL 和 ACCESS
    javascript前进、后退、刷新的实现
    DataTable数据统计方法
    常量指针和指针常量
  • 原文地址:https://www.cnblogs.com/jarod99/p/1376086.html
Copyright © 2011-2022 走看看