C 程式設計中的Lambda表示式

2021-06-19 13:20:16 字數 1089 閱讀 1197

c#程式設計中,可以把整型變數、長整型變數、結構甚至類作為引數傳遞給方法,但是我們卻難以想像可以把方法作為引數傳遞給方法,這就是委託(

delegate

)。這聽起來似乎有點繞口,但是它在

c#中的功能是很強大的。

舉個例子,當我們例項化乙個執行緒(

thread

)時,我們要呼叫該執行緒的

start

方法來啟動執行緒,啟動執行緒就需要乙個引數,這個引數就是另乙個方法的名稱。於是,我們就必須定義該方法,再將方法的名稱傳遞給執行緒的

start

方法。

其實,c#為我們提供了一種偷懶的方式,不用預先在其它地方定義該方法就可達到傳遞方法作為引數的目的,這就是

c#中的

lambda

表示式,它其實是乙個匿名方法。

它使用「

=>

」運算子,讀作「

goes

to」,該

lambda

表示式左邊為輸入引數(如果有的話),右邊為您所需實現的功能的表示式或語句塊。可將此

lambda

表示式分配給委託型別。

在上面的例子中,我們可以將

lambda

表示式放在例項化執行緒時的建構函式,最後再呼叫該執行緒的

start

方法啟動執行緒:

thread

thread =

newthread (

() =>

) ;thread.start() ;

當然,還需要將命名空間

system

.threading

匯入,microsoft

將執行緒類

thread

放在該命名空間下。

另乙個例子是將

lambda

表示式分配給委託:

delegate

intdel(

inti);

static

void

main(

string

args)

在這兒您可以找到關於

lambda

表示式更詳細的講解:

C 中Lambda表示式

c 語言還是比較常見的東西,這裡我們主要介紹c lambda表示式,包括介紹乙個lambda就是乙個delegate,乙個delegate指向乙個方法等方面。你有沒有接觸過c lambda表示式,有沒有覺得匿名方法這東西很不錯,減少了很多 阿,但是匿名方法的使用還並不人性化,什麼是人性化呢?比如你可...

C 中lambda表示式

在介紹lambda表示式之前,我想先介紹以下c 標準庫所支援的傳統謂詞以及傳統謂次的不足,而由此才引入的lambda表示式 謂詞是個可呼叫的表示式,其返回結果是乙個能作為條件的值。謂詞分為一元和二元,一元的可呼叫物件只能有乙個引數,二元只能有倆個引數 我們以一元謂詞舉例 c 標準庫中的find if...

C 中的Lambda表示式

c 11開始支援lambda表示式 原文 一段簡單的code 我也不是文藝的人,對於lambda的歷史,以及lambda與c 的那段淵源,我也不是很熟悉,技術人,講究拿 說事。複製 如下 include using namespace std int main return 0 當我第一次看到這段 ...