天天看點

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表達式