委托与事件

委托的定义

 

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.
                                                                                                                                                        MSDN Microsoft C# delegate is a callback function. It is smarter then “standard” callback because it allows defining a strict list of parameters which are passed from class-server to class-client.

 

                                                                                                                                                          CodeProject

委托委托是一种引用方法的类型。是一种引用方法的类型。
一旦为委托分配了方法,委一旦为委托分配了方法,委
托将与该方法具有完全相同托将与该方法具有完全相同
的行为。委托方法的使用可的行为。委托方法的使用可
以像其他任何方法一样,具以像其他任何方法一样,具
有参数和返回值有参数和返回值                                                      

 

                                                                   C# 编程指南 

 

 

委托与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");

你可能感兴趣的:(object,Parameters,callback,library,Pointers,delegates)