На этом шаге мы приведем еще одну программу, где используются лямбда-выражения.
В примере ниже - новая версия программы из 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. Результат выполнения программы
На следующем шаге мы закончим изучение этого вопроса.