最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談對Lambda表達式的理解

 更新時間:2015年07月10日 10:58:29   投稿:hebedich  
“Lambda 表達式”(lambda expression)是一個匿名函數(shù),Lambda表達式基于數(shù)學中的λ演算得名,直接對應于其中的lambda抽象(lambda abstraction),是一個匿名函數(shù),即沒有函數(shù)名的函數(shù)。Lambda表達式可以表示閉包(注意和數(shù)學傳統(tǒng)意義上的不同)。

  在.NET 1.0的時候,大家都知道我們經常用到的是委托。有了委托呢,我們就可以像傳遞變量一樣的傳遞方法。在一定程序上來講,委托是一種強類型的托管的方法指 針,曾經也一時被我們用的那叫一個廣泛呀,但是總的來說委托使用起來還是有一些繁瑣。來看看使用一個委托一共要以下幾個步驟:

用delegate關鍵字創(chuàng)建一個委托,包括聲明返回值和參數(shù)類型
使用的地方接收這個委托
創(chuàng)建這個委托的實例并指定一個返回值和參數(shù)類型匹配的方法傳遞過去
好啦,我承認啦上面是自己在網上看到的,但是它很好的介紹了委托,在以前要使用委托的話,就必須要進過上面的3個不步奏,在我看來真的覺得是挺繁雜的,所以主題來了Lambda表達式,它可以通過匿名的方法來繞過步奏2,所以我只需要定義一個委托后,再使用Lambda表達式來實現(xiàn)委托,下面寫一個小小的例子看看吧:
// 編譯器不知道后面到底是什么玩意,所以我們這里不能用var關鍵字

Action dummyLambda = () => { Console.WriteLine("Hello World from a Lambda expression!"); };
 
// double y = square(25);
Func<double, double> square = x => x * x;
 
// double z = product(9, 5);
Func<double, double, double> product = (x, y) => x * y;
 
// printProduct(9, 5);
Action<double, double> printProduct = (x, y) => { Console.WriteLine(x * y); };
 
// var sum = dotProduct(new double[] { 1, 2, 3 }, new double[] { 4, 5, 6 });
Func<double[], double[], double> dotProduct = (x, y) =>
{
  var dim = Math.Min(x.Length, y.Length);
  var sum = 0.0;
  for (var i = 0; i != dim; i++)
    sum += x[i] + y[i];
  return sum;
};
 
// var result = matrixVectorProductAsync(...);
Func<double, double, Task<double>> matrixVectorProductAsync = async (x, y) =>
{
  var sum = 0.0;
  /* do some stuff using await ... */
  return sum;
};

 從上面的代碼中我們可以看出:

如果只有一個參數(shù),不需要寫()
如果只有一條執(zhí)行語句,并且我們要返回它,就不需要{},并且不用寫return
Lambda可以異步執(zhí)行,只要在前面加上async關鍵字即可
Var關鍵字在大多數(shù)情況下都不能使用

以上所述就是本文的全部內容了,希望大家能夠喜歡。

相關文章

  • Visual?Studio創(chuàng)建WPF項目

    Visual?Studio創(chuàng)建WPF項目

    這篇文章介紹了使用Visual?Studio創(chuàng)建WPF項目的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • asp.net中生成餅狀與柱狀圖實例

    asp.net中生成餅狀與柱狀圖實例

    這篇文章主要介紹了asp.net中生成餅狀與柱狀圖的方法,以實例形式較為詳細的講述了生成餅狀與柱狀圖的原理與具體代碼,包括前后臺的實現(xiàn)代碼,需要的朋友可以參考下
    2014-11-11
  • ASP.NET中事件如何依次發(fā)生?

    ASP.NET中事件如何依次發(fā)生?

    這篇文章主要介紹了ASP.NET中事件是如何依次發(fā)生的,
    2015-09-09
  • Global.asax的Application_BeginRequest實現(xiàn)url重寫無后綴的代碼

    Global.asax的Application_BeginRequest實現(xiàn)url重寫無后綴的代碼

    本文為大家詳細介紹下利用Global.asax的Application_BeginRequest 實現(xiàn)url重寫其無后綴,具體核心代碼如下,有需求的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • asp.net Gridview行綁定事件新體會

    asp.net Gridview行綁定事件新體會

    最近在做統(tǒng)計GridView中某一列的加總值,之前有在RowDataBound事件中中逐筆加總,經過測試才知道,這是不正確的,并不能得到所有資料的加總值。
    2009-11-11
  • ASP.NET Core中的Razor頁面實現(xiàn)路由功能

    ASP.NET Core中的Razor頁面實現(xiàn)路由功能

    本文詳細講解了ASP.NET Core中的Razor頁面實現(xiàn)路由功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • 手把手教你AspNetCore WebApi認證與授權的方法

    手把手教你AspNetCore WebApi認證與授權的方法

    這篇文章主要介紹了手把手教你AspNetCore WebApi認證與授權的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 在.net core中實現(xiàn)字段和屬性注入的示例代碼

    在.net core中實現(xiàn)字段和屬性注入的示例代碼

    這篇文章主要介紹了在.net core中實現(xiàn)字段和屬性注入的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 詳解.NET中的加密算法總結(自定義加密Helper類續(xù))

    詳解.NET中的加密算法總結(自定義加密Helper類續(xù))

    這篇文章主要介紹了詳解.NET中的加密算法總結(自定義加密Helper類續(xù)) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • Asp.Net Core Web應用程序—探索

    Asp.Net Core Web應用程序—探索

    這篇文章主要介紹了Asp.Net Core Web應用程序—探索,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論

奇台县| 星子县| 务川| 黄平县| 庄河市| 全南县| 射洪县| 苗栗市| 阳泉市| 南雄市| 绩溪县| 津市市| 哈巴河县| 青龙| 庐江县| 云阳县| 左云县| 开平市| 桐城市| 广昌县| 隆子县| 绵竹市| 和平县| 翼城县| 海丰县| 东兰县| 平塘县| 广东省| 孟津县| 山东省| 建宁县| 望城县| 长岛县| 华亭县| 登封市| 微山县| 玉环县| 安化县| 永靖县| 白银市| 资溪县|