Шаг 181.
Язык программирования C#. Начала.
Делегаты и события. Лямбда-выражения (и еще продолжение)

    На этом шаге мы приведем еще одну программу, где используются лямбда-выражения.

    В примере ниже - новая версия программы из 176 шага, где лямбда-выражение выступает в качестве результата.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pr181_1
{
    delegate int MyDelegate();

    class Program
    {
        static MyDelegate calculate(int n) { 
            int count = 0;
            // Результат реализован через лямбда-выражение: 
            return ()=>{ 
                count += n; 
                return count;
            };
        }

        static void Main()
        {
            MyDelegate next = calculate(1); 
            for (int i = 1; i <= 5; i++)
            {
                Console.Write(next() + " ");
            }
            Console.WriteLine();
            next = calculate(3);
            for (int i = 1; i <= 5; i++)
            {
                Console.Write(next() + " ");
            }
            Console.WriteLine();
            // Задержка:
            Console.ReadLine();
        }
    }
}
Архив проекта можно взять здесь.

    Результат выполнения программы такой:


Рис.1. Результат выполнения программы

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг