C 匿名函式 詳解

2021-09-06 19:52:09 字數 1015 閱讀 2196

匿名函式是乙個「內聯」語句或表示式,可在需要委託型別的任何地方使用。

可以使用匿名函式來初始化命名委託[無需取名字的委託],或傳遞命名委託(而不是命名委託型別,傳遞乙個方法塊,而不是委託型別)[callback的方式]作為方法引數。

共有兩種匿名函式,以下主題分別討論了這些函式

在 c# 1.0 中,您通過使用在**中其他位置定義的方法顯式初始化委託來建立委託的例項。

c# 2.0 引入了匿名方法的概念,作為一種編寫可在委託呼叫中執行的未命名內聯語句塊的方式。

c# 3.0 引入了 lambda 表示式,這種表示式與匿名方法的概念類似,但更具表現力並且更簡練。 這兩個功能統稱為「匿名函式」。

通常,針對 .net framework 版本 3.5 及更高版本的應用程式應使用 lambda 表示式。

下面的示例演示了從 c# 1.0 到 c# 3.0 委託建立過程的發展:

///

///c# 1.0 - 3.0 委託的發展過程

/// public

class

delegateevlove

public

static

void main(string

args)

;adelegate(

"2 anonymous delegate");

//方法3 lambda 表示式

testdelegate ldelegate = (s) =>;

ldelegate(

"3 lambda delegate");

}}

在unity中可以使用c# 3.0的lambda表示式特性來書寫委託,它是完全支援的!

//

類似這樣的寫法

commuianim(() => ,args)

void commuianim(action callback,object

args)

更加詳細的內容,msdn:

C 匿名函式 詳解

匿名函式是乙個 內聯 語句或表示式,可在需要委託型別的任何地方使用。可以使用匿名函式來初始化命名委託 無需取名字的委託 或傳遞命名委託 而不是命名委託型別,傳遞乙個方法塊,而不是委託型別 callback的方式 作為方法引數。共有兩種匿名函式,以下主題分別討論了這些函式 在 c 1.0 中,您通過使...

Python lambda 匿名函式 詳解

python中用lambda關鍵字來表示匿名函式,冒號前的x xx表示函式引數,具體例子如下所示 list map lambda x x x,1 2,3 4,5 6,7 8,9 1,4,9,16,25,36,49,64,81 可以看出匿名函式lambda x x x x x times x x x ...

C 匿名函式

所謂匿名函式,其實類似於python中的lambda函式,其實就是沒有名字的函式。使用匿名函式,可以免去函式的宣告和定義。這樣匿名函式僅在呼叫函式的時候才會建立函式物件,而呼叫結束後立即釋放,所以匿名函式比非匿名函式更節省空間 c 中的匿名函式通常為 capture parameters retur...