您的位置:首页 > 编程语言 > C#

C#==>委托

2010-01-05 07:25 197 查看
1,.NET的委托实际上是实现了函数指针的概念。比如C或者C++对于windows API中的回调函数的使用实际上就是方法调用的指针。

VB 中的AddressOf关键字也实现了该功能。

2,当我们把方法传递给其他方法时,需要使用委托。
需要用到方法作为参数传递的几个实例:
①,启动线程。Thread类的构造函数
②,事件。事件发生时,把处理时间的方法传送为委托的一个参数。

3,.NET中不允许直接引用函数的指针,必须把方法的细节封装在一种新类型的对象中,即委托。
委托实际上是一种特殊的对象类型,委托不包含数据,有的仅仅是方法的地址。

4,委托的声明。委托的声明中包含了方法的全部细节,①返回类型,②带有的参数
例:delegate void MyMethod(int i);
※:地应委托实际上是定义了一个新类,所以可以在定义类的任何地方地址委托,
而不必非要定义在一个类的内部。

5,委托的使用

6,实例
namespace 委托
{
delegate void MyMethod(int i);

class Program
{
static void showInt(int i)
{
Console.WriteLine(i.ToString());
}

static void Main(string[] args)
{
MyMethod my = new MyMethod(showInt);

//C#2.0之后可以使用如下方式定义委托
MyMethod my2 = showInt;

my(100);
//实际上编译器会编译为 my.Invoke(100);

my2(1000);

//结果为100,1000
Console.Read();
}
}
}


7,委托的实例可以表示任何类型的任何对象上的实例方法或静态方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: