黑马程序员技术交流社区
标题:
关于委托
[打印本页]
作者:
380933512
时间:
2012-11-3 16:40
标题:
关于委托
MSDN:
委托是一个类型,是一个定义签名的类型,即方法的返回值类型和参数列表类型。可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。
委托仅仅是函数指针,那就是说,它能够引用函数。
那么,定义一个委托,也就等于定义一个函数指针,
那么,函数指针指向一些什么样的函数呢?
这就在定义委托的时候决定了,如:
public delegate void ShowDelegate(int p);
这就定义了一个委托 ShowDelegate。他指向的函数的返回类型为:void,函数有 1 个参数,类型为 int 型。
委托可以用来调用函数,如:
ShowDelegate abc = new ShowDelegate(ShowHi);
abc(15);
也可以做为函数的参数。
但大多数委托的用途多用于事件上。
事件就是委托的实例:
public event 委托名(xxxEventHandler) 事件名/实例名;
详细请看:
http://www.cnblogs.com/finesite/articles/255884.html
using System;
public class TestDelegate
{
public delegate void ShowDelegate(int p);
public static void ShowHi(int a)
{
Console.Write("Hi:{0}\n", a);
}
public static void ShowHello(int b)
{
Console.Write("Hello:{0}\n", b);
}
public static void HowShow(ShowDelegate pr)
{
int a = 10;
pr(a);
}
public static void Main()
{
HowShow(new ShowDelegate(ShowHello));
ShowDelegate abc = new ShowDelegate(ShowHi);
abc(15);
}
}
作者:
许庭洲
时间:
2012-11-3 20:59
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2