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

C#中的匿名方法實例解析

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

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

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

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

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

接下來說說匿名方法的寫法規(guī)則,先上例子:

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

它遵循這樣的格式書寫:

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

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

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

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;
}

以上是沒有使用匿名方法時的寫法,如果使用了匿名方法,你就會發(fā)現(xiàn)一切變得如此簡便,

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    C#處理猜拳問題的簡單實例(非窗體)

    下面小編就為大家?guī)硪黄狢#處理猜拳問題的簡單實例(非窗體)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • unity3d實現(xiàn)七天簽到功能

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

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

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

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

    C#實現(xiàn)電腦麥克風錄音

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

    如何使用C# Stopwatch 測量微秒級精確度

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

    c#序列化詳解示例

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

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

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

最新評論

富平县| 上犹县| 浏阳市| 宣汉县| 通化县| 天气| 赞皇县| 富民县| 乾安县| 汨罗市| 海丰县| 洱源县| 宁河县| 光泽县| 沅江市| 蓬莱市| 南江县| 渑池县| 禄丰县| 白河县| 巴马| 华宁县| 普兰县| 班玛县| 子长县| 仙桃市| 龙口市| 同心县| 石棉县| 榆树市| 平凉市| 定安县| 宁蒗| 休宁县| 资阳市| 安阳市| 东乌| 佳木斯市| 高淳县| 荣成市| 恩施市|