- 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);
- }
- }
|