Unity系统班之第十三课

2021-04-09 20:40发布

一、委托

实际上是一个类,该类代表来了一大类方法,代表的方法返回值类型和参数需要在定义委托时指定.例如:
 public delegate void GanFanDelegate(string fanType);
 GanFanDelegate委托代表的是所有的无返回值有一个字符串类型参数的方法

多播委托
设置一个多播委托需要注意:
1.第一次将一个方法放到一个委托变量中时需要用=.
2.第二次将方法绑定到委托变量时需要用+=.

event修饰委托:
使用event关键字修饰一个委托变量,在外部只能通过+=或者-=对该委托变量赋值或者解绑

event修饰委托:
使用event关键字修饰一个委托变量,在外部只能通过+=或者-=对该委托变量赋值或者解绑

二、匿名委托

使用delegate定义一个匿名委托,后面跟()小括号中的参数和委托保持一致,一定要注意大括号的结尾要有分号;


三、Lambda表达式

Lambda表达式相对于匿名委托没有delegate,小括号是形参,该形参没有类型,=>是固定写法

如果一个委托有返回值,并且绑定了多个方法,那么返回值是最后一个方法的值


四、Fun

Func和Action是系统内置的委托,Func代表有返回值的委托,Action代表没有返回值的委托
1.使用Func时指定的返回值类型必须放在泛型<>的最后.
2.Func和Action最多支持四个参数,如果超过需要定义自己的委托


心得体会:

         最后一天,继续加油!!