首页 > 代码库 > C#委托的使用
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,这样就注销了所有注册的委托,这样是不安全的,所以就出现了事件。
C#委托的使用