C 基礎知識 Lambda表示式

2022-01-29 21:38:18 字數 2764 閱讀 4471

一、lambda表示式簡介

lambda表示式可以理解為匿名函式,可以包含表示式和語句。它提供了一種便利的形式來建立委託。

lambda表示式使用這個運算子--- 「=>」,它讀成「goes to」 ,該運算子的左邊為輸入引數,右邊是表示式或者語句塊。

二、例子

例1:

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.text;

5using

system.threading.tasks;

6using

system.windows.forms;78

namespace

lambda9;

2324

//c# 3中使用lambda表示式來建立委託例項

25 func del3 = (string text) =>text.length;

2627

//可以省略引數型別string,把上面**再簡化為:

28 func del4 = (text) =>text.length;

2930

//如果lambda表示式只需乙個引數,並且那個引數可以隱式指定型別時,

31//

此時可以把圓括號也省略,簡化為:

32 func del5 = text =>text.length;

3334

int length = del5("

test");

35 console.writeline("

length:

" +length);

3637

console.readkey();38}

3940

private

static

int callbackmethod(string

str)

4144

}45 }

view code

例2:

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.text;

5using

system.threading.tasks;

6using

system.windows.forms;78

namespace

lambda9;

15 button1.left = 10

;16 button1.backcolor =system.drawing.color.red;

1718 button button2 = new button() ;

19 button2.backcolor =system.drawing.color.green;

2021

//c# 2中使用匿名方法來訂閱事件

22 button1.click += delegate (object

sender, eventargs e)23;

2627

28//

c# 3lambda表示式方式來訂閱事件

29 button2.click += (sender, e) => reportevent("

click事件

", sender, e);

3031

32 form form = new form ;

3334

form.controls.add(button1);

35form.controls.add(button2);

36//

執行窗體

3738

string str = "";39

bool isshow = false;40

while (!isshow)

4154}55

console.readkey();56}

57//

記錄事件的**方法

58private

static

void reportevent(string title, object

sender, eventargs e)59"

, title);

61 console.writeline("

激發事件的物件:

", (sender as

button).name);

62 console.writeline("

事件引數型別:

", e.gettype());

63console.writeline();

64console.writeline();65}

66}67 }

view code

執行結果如下:

C 小知識 lambda表示式

lambda表示式是c 11的重要特性之一,有如下特點 1 宣告式的程式設計風格 就地匿名定義目標函式或者函式,不需要額外寫乙個命名函式或者函式物件,以更直接的方式寫程式。2 簡潔 不需要額外再寫乙個函式或者函式物件,避免了 膨脹和功能分散。3 在需要的時間和地點實現功能閉包,使程式更加靈活。lam...

Lambda表示式基礎

1.lambda表示式使用條件 2.lambda表示式的三種編寫方式 public class lambdademo public static void proxygetuser userservice service public static string proxygetuser2 stri...

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...