Unity c# 委托和回调 匿名函数和Lambda表达式

回调可以同时保存多个函数调用,可以有多个参数,没有返回值
Unity c# 委托和回调 匿名函数和Lambda表达式
执行结果
Unity c# 委托和回调 匿名函数和Lambda表达式
委托可以同时保存多个函数调用,可以有多个参数,可以有返回值,但是只有最后绑定的那个函数调用的返回值才会被返回
Unity c# 委托和回调 匿名函数和Lambda表达式
执行结果,两个函数都有输出,但最终的返回值只有2
Unity c# 委托和回调 匿名函数和Lambda表达式
匿名函数和Lambda表达式
两者都是为了更方便的设定回调或委托出现的
以回调为例,先看匿名函数
匿名函数可以带参数,也可以不带参数。如果带参数,参数的类型和数量需要和回调保存一致;不带参数的匿名函数可以指定到任何回调上面(不管那个回调有没有参数,不过这样,这个匿名函数就没有办法在自己的函数体中访问可能存在的参数了)
Unity c# 委托和回调 匿名函数和Lambda表达式
执行结果
Unity c# 委托和回调 匿名函数和Lambda表达式
Lambda表达式
Lambda表达式必须和绑定的回调参数保持一致
Unity c# 委托和回调 匿名函数和Lambda表达式
执行结果
Unity c# 委托和回调 匿名函数和Lambda表达式
DOTween的特殊函数To的用法
DOTween.To(),可以将某种值(包括int,float,vector3等)在设定的时间内慢慢的变成另一个值,可以实现很多特殊的效果
To()需要四个参数,前两个都是委托类型的
Unity c# 委托和回调 匿名函数和Lambda表达式
Unity c# 委托和回调 匿名函数和Lambda表达式
执行结果都是一样的,将V的值在2秒内变成3
Unity c# 委托和回调 匿名函数和Lambda表达式