国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

委托、Lambda表達式、事件系列03,從委托到Lamda表達式

2019-11-17 02:51:10
字體:
來源:轉載
供稿:網友

委托、Lambda表達式、事件系列03,從委托到Lamda表達式

在"委托、Lambda表達式、事件系列02,什么時候該用委托"一文中,使用委托讓代碼簡潔了不少。

namespace Consoleapplication2
{
    internal delegate bool MyCalculateDelegate(int val);
    class PRogram
    {
        static void Main(string[] args)
        {
            IEnumerable<int> source = new List<int>(){2, 3, 4, 5, 6, 7, 8, 9,10, 11};
            MyCalculateDelegate del = LessThanFive;
            var result = GetNumbers(source, del);
            foreach (int n in result)
            {
                Console.WriteLine(n); 
            }
        }
        static IEnumerable<int> GetNumbers(IEnumerable<int> numbers, MyCalculateDelegate del)
        {
            foreach (int number in numbers)
            {
                if (del(number)) yield return number;
            }
        }
        static bool LessThanFive(int val)
        {
            return val < 5;
        }
        static bool LessThanTen(int val)
        {
            return val < 10;
        }
    }
}

可是,以上LessThanFive方法和LessThanTen方法的輸入參數、輸出類型、以及實現邏輯都是一致的,有沒有一種形式可以替代它們?這正是Lambda表達式登場的時候!Lambda表達式是匿名委托,以=>分隔,左邊是輸入參數,右邊是實現過程。

namespace ConsoleApplication2
{
    internal delegate bool MyCalculateDelegate(int val);
    class Program
    {

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新邵县| 即墨市| 泉州市| 灯塔市| 海晏县| 红河县| 望谟县| 乐安县| 长海县| 新津县| 襄垣县| 马关县| 长治县| 临海市| 麟游县| 称多县| 宿迁市| 玉环县| 贡山| 兴城市| 于都县| 江山市| 遵义县| 清远市| 望奎县| 体育| 包头市| 项城市| 称多县| 昌黎县| 肃南| 赣榆县| 泰和县| 婺源县| 宜黄县| 馆陶县| 金湖县| 盐亭县| 墨脱县| 新乐市| 宁城县|