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

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

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

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

namespace pr182_1
{
    delegate double Powers(double x); 

    class Program
    {
        static Powers maker(int n) {
            Powers meth;
            // Значением переменной типа делегата присваивается 
            // лямбда-выражение: 
            meth = x => { 
                double s=1;
                for(int i = 1; i <= n; i++) { 
                    s *= x;
                }
                return s;
            };
            return meth;
        }

        static void Main()
        {
            Powers sqr = maker(2);
            Powers cube = maker(3); 
            for(int i = 1; i <= 5; i++) {
                Console.WriteLine("{0,2}:{1,5}{2,5}{3,5}", i, 
                    sqr(i), cube(i), maker(4)(i));
            }
            // Задержка:
            Console.ReadLine();
        }
    }
}
Архив проекта можно взять здесь.

    Ниже приведен результат выполнения программы:


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

    Во всех приведенных на этом и предыдущих шагах примерах, хотя программный код изменился, результат выполнения программ такой же, как и у их предшественниц.

    Несложно заметить, что для небольших (по объему кода) методов использование лямбда-выражений значительно упрощает структуру и читабельность программы.


Не все лямбда-выражения в примерах описаны оптимальным образом. Причина связана с желанием показать различные способы описания лямбда-выражений.

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

    На следующем шаге мы начнем знакомиться с событиями.




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