程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Lambda表達式圖解,lambda表達式

Lambda表達式圖解,lambda表達式

編輯:C#入門知識

Lambda表達式圖解,lambda表達式


    internal delegate int MyDel(int x);
    public class Lambda
    {
       private MyDel del = delegate(int x)    { return x + 1; };//匿名方法
        private MyDel del2 =        (int x) => { return x + 1; };//Lambda表達式
        private MyDel del3 =            (x) => { return x + 1; };//Lambda表達式
        private MyDel del4 =              x =>          x + 1;   //Lambda表達式

    }

 

Lambda圖解


lambda表達式來自什地方?

Lambda表達式(Lambda Expressions)2009-03-06 16:33Lambda 表達式(拉姆達表達式) 和 匿名方法 其實是一件事情。唯一的不同是:他們語法表現形式不同。Lambda 表達式是在語法方面的更進一步的進化。在本質上,他們是一件事情。他們的作用都是:產生方法。即:內聯方法。

引用自 C#首席架構師Anders Hejlsberg 的原話:

www.ondotnet.com/...page=2

lambda expressions and anonymous methods are really just two words for the same thing. The only thing that differs is, "What does the syntax look like?" And the lambda expressions are a further evolution of the syntax.But underneath, they do the same thing. They generate methods. You know, they're in-line methods.

所以:我們要了解 Lambda 表達式 就應該同時也了解 匿名方法。下面先看一個簡單的代碼例子,分別用匿名方法和Lambda 表達式來實現對數組的搜索:

使用 .net 2.0 的匿名方法來搜索字符串數組中包含 a 的字符串數組

static void Main(string[] args)
{
string[] list = new string[] { "abc", "12", "java" };
string[] ll = Array.FindAll(list,
delegate(string s)
{
return s.IndexOf("a") >= 0;
}
);
foreach (string var in ll)
{
Console.WriteLine(var);
}
Console.ReadLine();
}

使用 .net 3.5 的Lambda表達式來搜索字符串數組中包含 a 的字符串數組

static void Main(string[] args)
{
string[] list = new string[] { "abc", "12", "java" };

string[] ll = Array.FindAll(list, s => (s.IndexOf("a") >= 0));
foreach (string var in ll)......余下全文>>
 

lambda表達式誰給詳細解釋一下

簡單點說就是一個匿名委托
參見 msdn
msdn.microsoft.com/zh-cn/library/bb397687.aspx
參考資料:msdn.microsoft.com/zh-cn/library/bb397687.aspx
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved