类文件代码:
using System;
using System.Web;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 给委托注册一个方法,当调用委托的时候,该方法自动执行
Handler += new DemoHandler(_Default_Handler);
}
protected void Button1_Click(object sender, EventArgs e)
{
_Handler(new DemoEventArgs("Hello World!"));
}
void _Default_Handler(DemoEventArgs e)
{
Response.Write(e.Id);
}
/// <summary>
/// 定义一个委托
/// </summary>
/// <param name="sender"></param>
/// <param name="freshEventArgs"></param>
public delegate void DemoHandler(DemoEventArgs e);
// 委托实例
private DemoHandler _Handler;
public event DemoHandler Handler
{
add { _Handler += value; }
remove { _Handler -= value; }
}
// 自定义一个事件参数,可自己加属性
public class DemoEventArgs : EventArgs
{
public string Id;
public DemoEventArgs(string id)
{
Id = id;
}
}
}
页面代码:
<asp:Button ID="Button1" runat="server" Text="调用委托指定的方法,显示 Hello World!" OnClick="Button1_Click" />