C#委托的使用

委托是一种类型,像其他系统类型一样,可以存储变量,

不同的是委托类型变量是用来存储方法的。

当委托变量指向函数,这样就可以像调用函数一样把委托变量当作函数一样调用了。

定义方法为:deleget 返回值类型 委托类型(参数列表)

委托的使用

1.先定义一个委托类型,例如deleget void myDeleget();就声明了一个没有参数也没有返回值类型的委托

2.定义了委托类型,就可以声明它的变量了,如 myDeleget md=deleget(){}; 其中后面的为匿名方法。使用deleget为关键词声明其中()如果委托类型带参数可以写在里面。

3.调用委托md();这样就相当于执行了赋值给为委托类型的函数了。

4.委托的类型,委托可以有很多的类型。

a.无参数,无返回值的。deleget void firstDeleget();

b.有参数,无返回值。deleget void secondDeleget(string msg);

c.有参数,有返回值。deleget string thirdDeleget(string msg);参数可以有多个

d.无参数,有返回值。deleget string fourDeleget(string msg);

5.匿名方法的声明

a.通过deldget声明  deleget(msg){return "test";};//其中msg为参数名,而真正的值是需要在调用时传入的,l例如:md("asdfsdf");

b.lambda表达式:()=>{} 和第一种中很像,只是省去了deleget的关键字,添加了=>。其他的一致。

6.委托的赋值

如图所示,委托的赋值可以直接把方法赋值,也可以通过构造函数赋值。

同时这个方法可以的定义好的,也可以是匿名方法。

7.委托所需要的参数,是在执行委托时传入的。

8.多播委托

委托变量可以绑定多个方法。并以此执行。通过+=的方式添加。通过-=的方式注销。

当其中一个委托出错时,将不会执行往后的委托。

同时可以赋值给委托变量为NULL,这样就注销了所有注册的委托,这样是不安全的,所以就出现了事件。

原文地址:https://www.cnblogs.com/xiaoai123/p/6935752.html