C#中() =>是什么意思
如題C#中()=>是什么意思,比如publicICommandAddCommand{get{if(this.addCommand==null)this.addCommand=newRelayCommand(()=>this.AddPerson(),()=>this.CanAddPerson());returnthis...展開
我來答
分享
舉報瀏覽 81529 次
7個回答
Asherwdh
來自百度知道認證團隊 2018-10-09
這是NET3.0以后的新特性 Lambda表達式 ,“Lambda 表達式”是一個匿名函數,Lambda表達式基於數學中的λ演算得名,直接對應於其中的lambda抽象,是一個匿名函數,即沒有函數名的函數。Lambda表達式可以表示閉包(注意和數學傳統意義上的不同)。
擴展資料
關於Lambda表達式的使用方法
Lambda 用在基於方法的 LINQ 查詢中,作為諸如 Where 和 Where 等標准查詢運算符方法的參數。
使用基於方法的語法在 Enumerable 類中調用 Where 方法時(像在 LINQ to Objects 和 LINQ to XML 中那樣),參數是委托類型 System..::.Func<(Of <(T, TResult>)>)。使用 Lambda 表達式創建委托最為方便。
例如,當您在 System.Linq..::.Queryable 類中調用相同的方法時(像在 LINQ to SQL 中那樣),則參數類型是 System.Linq.Expressions..::.Expression<Func>,其中 Func 是包含至多五個輸入參數的任何 Func 委托。
同樣,Lambda 表達式只是一種用於構造表達式目錄樹的非常簡練的方式。盡管事實上通過 Lambda 創建的對象的類型是不同的,但 Lambda 使得 Where 調用看起來類似。
在前面的示例中,請注意委托簽名具有一個 int 類型的隱式類型輸入參數,並返回 int。可以將 Lambda 表達式轉換為該類型的委托,因為該表達式也具有一個輸入參數 (x),以及一個編譯器可隱式轉換為 int 類型的返回值。(以下幾節中將對類型推理進行詳細討論。)使用輸入參數 5 調用委托時,它將返回結果 25。
資料來源:百度百科:Lambda表達式

