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

C# 委托delegate的相关知识

2016-08-10 17:25 246 查看
C#中的委托(delegate),类似于C/C++中的函数指针,它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m,其传递的是一个方法。

委托在多线程编程,定义事件,事件处理函数中使用.委托可以看作封装以前C++中的函数指针的一些信息,在类型上更安全.它是线程上的调用,可以不理会调用事件是否成功执行.


委托的好处就是可以动态的改变调的函数。

实现一个delegate是很简单的,通过以下3个步骤即可实现一个delegate:

1. 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。

2. 创建delegate对象,并"将你想要传递的函数作为参数传入",即委托与方法绑定。

3. 在要实现异步调用的地方,通过上一步创建的对象来调用方法。

     例子:



另外,委托可以添加一系列方法,通过 += 或 -= 来添加或删除委托所绑定的方法

一个委托,比方说叫Dele

Dele = a;

Dele += b;

Dele += c;

添加了函数,那么着三个函数会被依次执行

Dele -= b;

相当于从这个列表里把b删除了,只执行a,c

这个委托变量必须先用 = 赋值一次,才可以进行+=赋值,-=可以任意撤销委托
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 委托 delegate