自己写的委托的使用.

来源:互联网 发布:家居创意淘宝店 编辑:程序博客网 时间:2024/05/23 11:44
<form id="form1" runat="server">    <asp:Button ID="btnDelegate" runat="server" Text="runDelegate" OnClick="btnDelegateClick" />    <asp:Button ID="btnDelegate2" runat="server" Text="runDelegate2" OnClick="btnTwoMethodToDelegateClick" />    </form>
================================= 
   public partial class WebForm9 : System.Web.UI.Page    {    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            //给按钮2动态绑定事件            //   this.btnDelegate2.Click += new EventHandler(this.btnTwoMethodToDelegateClick);        }    }     /// <summary>    /// 定义了一个委托.格式和EnglishGreeting和ChineseGreeting一样.就是为用这两个方法.    /// 把什么方法赋给这个委托.这个委托就是什么方法    /// </summary>    public delegate void GreetingDelegate(string name);     public static void EnglishGreeting(string name)    {        MessageBox.Show("morning:" + name);    }     public static void ChineseGreeting(string name)    {        MessageBox.Show("早上好:" + name);    }     public void Greeting(string name, GreetingDelegate gd)    {        gd(name);  //执行委托就是执行了赋给他的方法 .委托就像是这个方法的别名一样    }     /// <summary>    /// 点击按钮事件    /// </summary>    protected void btnDelegateClick(object sender, EventArgs e)    {        Greeting("xiaoChen", EnglishGreeting);  //把EnglishGreeting赋给了委托    }     protected void btnTwoMethodToDelegateClick(object sender, EventArgs e)    {        GreetingDelegate gd2;        gd2 = EnglishGreeting;  //把方法赋给委托        gd2 += ChineseGreeting; //再把另一个方法绑定到委托上.这样委托就有了两个方法        Greeting("xiaoChen", gd2);    }    }
原创粉丝点击