看了前人的书,自己的理解,呵呵!
delegate就是定义一个接口,然后有某一个具体的方法实现了这个接口,实力化一个委托,把方法当作参数,委托就会调用这个方法.
也就是说我们定义的委托代表方法的返回值类型和参数类型,在实例化该委托时传入方法名称,这样该委托的实例就可以表示相应的方法了。
委托声明了以后,就可以象类一样进行实例化,实例化时把要引用的方法(如:Add)做为参数,这样委托和方法就关联了起来,就可以用委托来引用方法了。
委托和所引用的方法必须保持一致:参数个数、类型、顺序必须完全一致;返回值必须一致。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class delgate : System.Web.UI.Page
{
public delegate void MyDelegate(int a,int b);//定义一个委托(接口)
protected void Page_Load(object sender, EventArgs e)
{
MyDelegate dl = new MyDelegate(AddNum);//实力化委托,把实现委托接口的方法当作参数传递,dl就会调用这个方法.
dl(1, 3);
}
public void AddNum(int a, int b)
{
Response.Write(a + b);
}
}