自己写的委托的使用.
来源:互联网 发布:家居创意淘宝店 编辑:程序博客网 时间: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); } }