Lambda表示式的非Linq用法

2021-09-05 16:36:04 字數 718 閱讀 3729

說到lambda表示式,幾乎所有人的反應就是linq,不錯,lambda表示式的最大用途確實是在linq,lambda表示式本身也是為linq量身定做的。

但是lambda表示式本身只是乙個匿名函式的簡化版,因此,並不是針對linq的。換而言之,任何匿名函式可以做的事情,lambda表示式都可以做。就以windows form的程式為例子吧:

public

partial 

class

form1 : form

}     這也是乙個合法的lambda表示式。可以看出來這裡的

(sender, e) 

=>

messagebox.show(

"hello world.

")是代替了這樣乙個函式

private

static

void

somemethod(

object

sender, eventargs e)

當然,csharp 3.0的編譯器還為我們做了些事,那就是自動推斷出在this.click +=需要的是乙個eventhandler的委託,因此,不需要像csharp 2.0那樣需要new eventhandler,編譯器幫我們建立了(生成的il是一樣的,只不過可以少寫點**)。

到這裡,會發現lambda表示式其實根本沒做什麼事情,只不過是c#語法中加了一種匿名函式的快速而又簡單的寫法而已。當然,這樣的改進是大家所喜歡的。

linq表示式對比lambda表示式

什麼是linq表示式?什麼是lambda表示式?前一段時間用到這個只是,在網上也沒找到比較簡單明瞭的方法,今天就整理了一下相關知識,有空了再仔細研究研究 public program ling表示式 var stus1 from s in allstudent where s.name 王二 sel...

LINQ和Lambda表示式

前段時間接觸了一種新的表示式,但是不知道這個是什麼意思,所以就先站在巨人的肩膀用了,現在聽師哥說這種寫法是 lambda 表示式。我一直以為,這個 lambda 表示式和 linq 查詢有異曲同工之妙,可惜,這樣想就大錯特錯了。定義語言整合查詢 language integrated query 允...

LINQ與Lambda表示式

是微軟提出的一項新技術 能將查詢功能直接引入到.net framwork所支援的程式語言中。查詢操作可以通過程式語言自身來傳達,而不用以字串形式嵌入到 中。主要包括linq to sql,linq to dataset,linq to objects和linq to xml4種技術。在c 後期版本中...