A delegate declaration defines a reference type that can be used to encapsulate a method with a specific signature.A delegate instance encapsulates a static or an instance method. Delegates are roughly similar to function pointers in C++; however, delegates are type-safe and secure.
CodeProject
委托委托是一种引用方法的类型。是一种引用方法的类型。
C# 编程指南
一个delegate Object 一次可以搭载多个方法,而不是一次一个。当我们唤起一个搭载了多个方法的Deleagte,所有方法以其“被搭载到delegate Object的顺序”被依次唤起
一个delegate Object 所搭载的方法并不需要属于同一个类。一个delegate object 所搭载的所有方法必须具有相同的原型和形式。然而,这些方法可以即有static 也有non-static,可以由一个或多个不通的类成员组成。
一个 delegate type 的声明在本质上是创建了一个新的的声明在本质上是创建了一个新的subtype subtype
instance instance,该,该subtype subtype 派生自派生自.NET library framework .NET library framework 的的abstract abstracbase classes Delegate 或或MulticastDelegate MulticastDelegate,它们提供一组,它们提供一组public methods 用以询访用以询访delegate object delegate object 或其搭载的方法。或其搭载的方法。
委托是函数的封装,它代表一委托是函数的封装,它代表一“类类”函数。函数。
它们都符合一定的签名:拥有相同的参数它们都符合一定的签名:拥有相同的参数
列表、返回值类型。同时,委托也可以看列表、返回值类型。同时,委托也可以看
成是对函数的抽象,是函数的成是对函数的抽象,是函数的“类类”。此。此
。时,委托的实例将代表一个具体的函数。
如何委托
<modifiers> delegate <return_type> <delegate_name>(argument_list)
举例:
pubulic delegate void Del(string message);
public void DelegateMethod(string message) //Class DelClass
{ System.Console.WriteLine(message); }
DelClass obj = new DelClass();
Del handler = new Del(obj.DelegateMethod);
handler("Hello World");