濮阳杆衣贸易有限公司

主頁 > 知識庫 > 淺談對Lambda表達式的理解

淺談對Lambda表達式的理解

熱門標簽:西寧電銷外呼系統(tǒng)公司 海東防封電銷卡 南昌自動外呼系統(tǒng)線路 安陸市地圖標注app 寧德防封版電銷卡 上海市三維地圖標注 聊城智能電銷機器人電話 云南外呼系統(tǒng)代理 辦公用地圖標注網(wǎng)點怎么操作

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

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

Action dummyLambda = () => { Console.WriteLine("Hello World from a Lambda expression!"); };
 
// double y = square(25);
Funcdouble, double> square = x => x * x;
 
// double z = product(9, 5);
Funcdouble, double, double> product = (x, y) => x * y;
 
// printProduct(9, 5);
Actiondouble, double> printProduct = (x, y) => { Console.WriteLine(x * y); };
 
// var sum = dotProduct(new double[] { 1, 2, 3 }, new double[] { 4, 5, 6 });
Funcdouble[], 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(...);
Funcdouble, double, Taskdouble>> matrixVectorProductAsync = async (x, y) =>
{
  var sum = 0.0;
  /* do some stuff using await ... */
  return sum;
};

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

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

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

您可能感興趣的文章:
  • 讓JavaScript擁有類似Lambda表達式編程能力的方法
  • JavaScript具有類似Lambda表達式編程能力的代碼(改進版)
  • C# Lambda表達式用途深入理解
  • python基礎(chǔ)教程之lambda表達式使用方法
  • Java Lambda表達式詳解和實例
  • C++中的Lambda表達式詳解
  • C#中使用Lambda表達式自定義比較器實現(xiàn)兩個列表合并實例

標簽:洛陽 汕尾 贛州 青海 衢州 崇左 南寧

巨人網(wǎng)絡(luò)通訊聲明:本文標題《淺談對Lambda表達式的理解》,本文關(guān)鍵詞  淺談,對,Lambda,表達式,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談對Lambda表達式的理解》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談對Lambda表達式的理解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    乌什县| 孟村| 阳江市| 当涂县| 定远县| 寿光市| 吉林省| 台北县| 祁连县| 秀山| 盐源县| 元谋县| 光山县| 龙南县| 应用必备| 清镇市| 固镇县| 宣威市| 东阳市| 韶山市| 马尔康县| 开原市| 旌德县| 文水县| 双江| 罗定市| 理塘县| 道孚县| 六枝特区| 车致| 成都市| 连平县| 蕉岭县| 景谷| 大关县| 洪湖市| 本溪市| 华亭县| 云林县| 温泉县| 襄垣县|