麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

如何創建C#Closure?

2019-11-14 13:35:40
字體:
來源:轉載
供稿:網友

  javaScript中一個重要的概念就是閉包,閉包在Javascript中有大量的應用,但是你知道么?C#也可以創建Closure。下面就介紹一下如何在C#中創建神奇的閉包。

  在這之前,我們必須先知道如何在C#中定義函數

1  //函數定義,參數為string,返回為string2 Func<string, string> myFunc = delegate(string msg)3 {4       return "Msg:" + msg;5 };

  利用Lambda表達式也可以簡化上述的代碼,但是效果一樣:

1  //Lambda2  Func<string, string> myFuncSame = msg => "Msg:" + msg;

  定義好函數后,可以進行調用:

1  //函數調用2  string message= myFuncSame("Hello world");

  定義一個帶外部變量(相對于內嵌函數而言)的嵌套函數,外部函數將內部嵌套的函數進行返回:

 1  public static Func<int, int> Func() 2  { 3      var myVar = 1; 4      Func<int, int> inc = delegate(int var1) 5      { 6          //myVar能夠記錄上一次調用后的狀態(值) 7          myVar = myVar + 1; 8          return var1 + myVar; 9      };10      return inc;11  }

  C# Closure調用如下所示:

1 static void CsharpClosures()2 {3     var inc = Func();4     Console.WriteLine(inc(5));//75     Console.WriteLine(inc(6));//96 }

  當第二次調用inc(6)時,此時函數內變量myVar并未像第一次調用函數時進行重新初始化(var myVar=1),而是保留了第一次運算的值,即 2,因此inc(6)返回的結果為(2+1+6)=9.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嗯~啊~弄嗯~啊h高潮视频 | 日本一区二区视频在线观看 | 成年性羞羞视频免费观看 | 久久国产精品久久精品国产演员表 | 91精品观看91久久久久久国产 | 日本一区视频在线观看 | 中文字幕 欧美 日韩 | 69性欧美高清影院 | 久久999久久 | 久久精品2019中文字幕 | 日韩大片在线永久观看视频网站免费 | 久久综合婷婷 | 欧美在线观看视频网站 | 国产精品视频 | 日本一区视频在线观看 | 中国a毛片 | 国产精品美女久久久免费 | 最污网站| 久久久久久久久日本理论电影 | 91精品福利视频 | 国产一区二区三区精品在线观看 | 日本特级a一片免费观看 | 久久免费综合视频 | 九九午夜| 精品一区二区电影 | 色中射| 欧美精品一区二区久久 | 美女视频在线观看黄 | h色在线观看 | 亚洲电影在线播放 | 高清国产在线 | 国产电影av在线 | 被啪羞羞视频在线观看 | 国产中出视频 | 午夜av男人的天堂 | 欧美成人二区 | 亚洲精品欧美二区三区中文字幕 | 91成人在线免费观看 | 国产亚洲综合一区二区 | 一级色毛片| 国产精品久久久久久久久久久久久久久久 |