什么是委托...
委托有什么用?
简单的说:我们在用vs.net开发程序时 在开发界面放一个按钮 点击它 在后台就会生成对这个按钮的click事件 然后我能就可以在该事件的代码里面写要处理的事。该click事件事怎么和按钮联系起来的呢?用国asp.net的都知道 this.BtnReturn.Click += new System.Web.UI.ImageClickEventHandler(this.BtnReturn_Click);
这里就是个委托 最后面的this.BtnReturn_Click就是按钮的cilick事件的函数 这个函数我们可以随便改 例如this.BtnReturn.Click += new System.Web.UI.ImageClickEventHandler(do);只要我们存在有个do()的函数就可以了,这就是委托的作用。
委托类似于函数指针,但函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法。
委托使用分三步:1、委托声明。2、委托实例化。3、委托调用。例程一:
程序代码
using System;
namespace委托
{
delegate int NumOpe(int a,int b); //第一步:委托声明
class Class1
{
static void Main(string[] args)
{
Class1 c1 = new Class1();
NumOpe p1 = new NumOpe(c1.Add); //委托实例化,注意参数是要使用的参数名,且不带括号
Console.WriteLine(p1(1,2)); //委托调用
Console.ReadLine();
}
private int Add(int num1,int num2)
{
return(num1+num2);
}
}
}
例中,委托NumOpe引用了方法Add。
委托声明了以后,就可以象类一样进行实例化,实例化时把要引用的方法(如:Add)做为参数,这样委托和方法就关联了起来,就可以用委托来引用方法了。
委托和所引用的方法必须保持一致:
1、参数个数、类型、顺序必须完全一致。
2、返回值必须一致。