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

C#中的匿名方法實(shí)例解析

 更新時(shí)間:2014年09月03日 16:13:13   投稿:shichen2014  
這篇文章主要介紹了C#中的匿名方法,包括其由來(lái)、定義及用法等,需要的朋友可以參考下

本文較為詳細(xì)的講述了C#中的匿名方法,并附上實(shí)例加以說(shuō)明。現(xiàn)將其分享給大家供大家參考之用。具體分析如下:

首先,C#中的匿名方法是在C#2.0引入的,它終結(jié)了C#2.0之前版本聲明委托的唯一方法是使用命名方法的時(shí)代。雖然在 C# 3.0 及更高版本中,Lambda 表達(dá)式取代了匿名方法,作為編寫(xiě)內(nèi)聯(lián)代碼的首選方式。但是,匿名方法的信息同樣也適用于 Lambda 表達(dá)式,可以說(shuō) Lambda 表達(dá)式就是匿名方法演變過(guò)來(lái)的。

我們可以使用匿名方法來(lái)忽略參數(shù)列表。 這意味著匿名方法可轉(zhuǎn)換為具有各種簽名的委托,而這對(duì)于 Lambda 表達(dá)式來(lái)說(shuō)是不可能的。 學(xué)好匿名方法,才能更加深刻地理解好 Lambda 表達(dá)式。

在說(shuō)匿名方法的使用之前,先來(lái)說(shuō)說(shuō)匿名方法的其他叫法。匿名方法也有人叫匿名委托、匿名函數(shù),雖然現(xiàn)在普遍通用,但是還是有點(diǎn)區(qū)別的。msdn官網(wǎng)上說(shuō):要將代碼塊傳遞為委托參數(shù),創(chuàng)建匿名方法則是唯一的方法。這里的匿名方法就是官方的說(shuō)法,而因?yàn)槟涿椒ň褪菫榱藢⒋a塊傳遞為委托參數(shù),因此也有人叫匿名委托,包括筆者也喜歡這種稱呼,我覺(jué)得這樣叫通俗易懂。至于匿名函數(shù),因?yàn)镃#中“方法”(Method)的概念有些語(yǔ)言叫“函數(shù)”(Function),因此匿名方法也被人叫做匿名函數(shù)。然而在msdn文檔介紹中匿名函數(shù)包括了Lambda 表達(dá)式和匿名方法,可以說(shuō)匿名函數(shù)是更高的一級(jí),所以說(shuō)最官方的叫法還是匿名方法,當(dāng)然其他的叫法流傳也甚廣,聽(tīng)得懂就行了,沒(méi)必要糾結(jié)。

接下來(lái)說(shuō)說(shuō)匿名方法的寫(xiě)法規(guī)則,先上例子:

delegate(int i) { return i > 0; }

它遵循這樣的格式書(shū)寫(xiě):

delegate(形參表){方法體代碼}

可以類比js中匿名函數(shù)的寫(xiě)法來(lái)記憶。

那么匿名方法運(yùn)用在哪里呢?怎么使用呢?當(dāng)你需要一個(gè)臨時(shí)方法,該方法使用次數(shù)極少或者你需要的這個(gè)方法的代碼很簡(jiǎn)短,那么你就可以使用匿名方法。給個(gè)簡(jiǎn)單的例子,如果需要在一個(gè)整型集合中篩選出符合條件的新集合,如下

List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6 };
//假設(shè)需要從list集合中獲取大于3的所有元素以新集合返回
var newlist = newlist.FindAll(GetNewList);

GetNewList()為另外定義的和委托Predicate<T>具有同簽名的方法(Predicate<T>是系統(tǒng)內(nèi)置委托)

GetNewList()定義如下:

bool GetNewList(int i)
{
  return i > 3;
}

以上是沒(méi)有使用匿名方法時(shí)的寫(xiě)法,如果使用了匿名方法,你就會(huì)發(fā)現(xiàn)一切變得如此簡(jiǎn)便,

List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6 };
var newlist = list.FindAll(delegate(int i) { return i > 3; });

通過(guò)對(duì)比,可以發(fā)現(xiàn)使用匿名方法能夠提供與先前命名方法相同的功能,但是它已經(jīng)不再需要一個(gè)在關(guān)聯(lián)到委托之前就明確創(chuàng)建的方法了,因此也減少了實(shí)例化委托所需的編碼系統(tǒng)開(kāi)銷,這就是它的最大好處。

相信本文所述對(duì)大家的C#程序設(shè)計(jì)有一定的借鑒價(jià)值。

相關(guān)文章

  • 基于WPF實(shí)現(xiàn)用戶頭像選擇器的示例代碼

    基于WPF實(shí)現(xiàn)用戶頭像選擇器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何基于WPF實(shí)現(xiàn)用戶頭像選擇器,文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們學(xué)習(xí)WPF有一定幫助,感興趣的可以了解一下
    2022-07-07
  • WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法實(shí)例詳解

    WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法實(shí)例詳解

    這篇文章主要介紹了WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法,實(shí)例分析了C#中實(shí)現(xiàn)WinForm最小化到系統(tǒng)托盤所需的相關(guān)控件與使用技巧,需要的朋友可以參考下
    2015-05-05
  • Unity編輯器選擇器工具類Selection常用函數(shù)示例詳解

    Unity編輯器選擇器工具類Selection常用函數(shù)示例詳解

    這篇文章主要為大家介紹了Unity編輯器選擇器工具類Selection常用函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C#處理猜拳問(wèn)題的簡(jiǎn)單實(shí)例(非窗體)

    C#處理猜拳問(wèn)題的簡(jiǎn)單實(shí)例(非窗體)

    下面小編就為大家?guī)?lái)一篇C#處理猜拳問(wèn)題的簡(jiǎn)單實(shí)例(非窗體)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • unity3d實(shí)現(xiàn)七天簽到功能

    unity3d實(shí)現(xiàn)七天簽到功能

    這篇文章主要為大家詳細(xì)介紹了unity3d實(shí)現(xiàn)七天簽到功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C#中HttpWebRequest、WebClient、HttpClient的使用詳解

    C#中HttpWebRequest、WebClient、HttpClient的使用詳解

    這篇文章主要介紹了C#中HttpWebRequest、WebClient、HttpClient的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#實(shí)現(xiàn)電腦麥克風(fēng)錄音

    C#實(shí)現(xiàn)電腦麥克風(fēng)錄音

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)電腦麥克風(fēng)錄音,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 如何使用C# Stopwatch 測(cè)量微秒級(jí)精確度

    如何使用C# Stopwatch 測(cè)量微秒級(jí)精確度

    這篇文章主要介紹了如何使用C# Stopwatch 測(cè)量微秒精確度,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • c#序列化詳解示例

    c#序列化詳解示例

    序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)
    2014-02-02
  • VS中C#讀取app.config數(shù)據(jù)庫(kù)配置字符串的三種方法

    VS中C#讀取app.config數(shù)據(jù)庫(kù)配置字符串的三種方法

    這篇文章主要介紹了VS中C#讀取app.config數(shù)據(jù)庫(kù)配置字符串的三種方法,需要的朋友可以參考下
    2015-10-10

最新評(píng)論

封开县| 晋宁县| 西华县| 天门市| 收藏| 苍梧县| 上蔡县| 汉川市| 盘锦市| 沧州市| 满洲里市| 淄博市| 德保县| 饶平县| 抚顺县| 邹平县| 宜春市| 白水县| 盐边县| 洪泽县| 红河县| 郧西县| 通河县| 天祝| 大悟县| 报价| 青州市| 花莲县| 双峰县| 盐池县| 海林市| 通河县| 临泉县| 宣武区| 仙桃市| 云霄县| 舞阳县| 庐江县| 浙江省| 海淀区| 榆中县|