C 匿名函式

2021-09-28 15:21:10 字數 1193 閱讀 9618

匿名函式是乙個「內聯」語句或表示式,可在需要委託型別的任何地方使用。  可以使用匿名函式來初始化命名委託,或傳遞命名委託(而不是命名委託型別)作為方法引數。

c# 中委託的發展

在 c# 1.0 中,您通過使用在**中其他位置定義的方法顯式初始化委託來建立委託的例項。  c# 2.0 引入了匿名方法的概念,作為一種編寫可在委託呼叫中執行的未命名內聯語句塊的方式。  c# 3.0 引入了 lambda 表示式,這種表示式與匿名方法的概念類似,但更具表現力並且更簡練。  這兩個功能統稱為「匿名函式」。  通常,針對 .net framework 版本 3.5 及更高版本的應用程式應使用 lambda 表示式。

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

class test

static void main(string args)

;// c# 3.0. a delegate can be initialized with

// a lambda expression. the lambda also takes a string

// as an input parameter (x). the type of x is inferred by the compiler.

testdelegate testdelc = (x) => ;

// invoke the delegates.

testdela("hello. my name is m and i write lines.");

testdelb("that's nothing. i'm anonymous and ");

testdelc("i'm a famous author.");

// keep console window open in debug mode.

console.writeline("press any key to exit.");

console.readkey();

}}/* output:

hello. my name is m and i write lines.

that's nothing. i'm anonymous and

i'm a famous author.

press any key to exit.

*/

C 匿名函式

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

C 匿名函式

c 中委託的演變 c 1 中,通過使用在 中其他位置定義的方法顯式初始化委託來建立委託的例項 c 2中,引入了匿名方法的概念,作為一種編寫可在委託呼叫中執行的未命名內聯句塊的方式 c 3 中,引入了lambda 表示式,這種表示式和匿名方法類似,但更具表達力 更簡單。匿名方法 和lambda表示式 ...

C 匿名函式

1.1乙個簡單的示例 includeusing namespace std int main int num fun 10 呼叫 cout num endl 測試返回值 return 0 1.2基礎示例 include std sort include std string include std ...