什么是委托...

委托有什么用?

简单的说:我们在用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、返回值必须一致。

posted @ 2010-11-08 19:33  自信的瓶子  阅读(118)  评论(0)    收藏  举报