C# 委托delegate的相关知识

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

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

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


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

1. 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型
2. 创建delegate对象,并"将你想要传递的函数作为参数传入",即委托与方法绑定。
3. 在要实现异步调用的地方,通过上一步创建的对象来调用方法。

     例子:
C# 委托delegate的相关知识_第1张图片


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


一个委托,比方说叫Dele

Dele = a;

Dele += b;

Dele += c;

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


Dele -= b;

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


这个委托变量必须先用 = 赋值一次,才可以进行+=赋值,-=可以任意撤销委托



你可能感兴趣的:(c#,委托,delegate)