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

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

    В примере ниже представлена версия программы из 174 шага, но вместо анонимных методов использованы лямбда-выражения (здесь и в следующих шагах несущественные комментарии удалены, а важные места выделены жирным шрифтом).

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

namespace pr179_1
{
    delegate int Alpha(int n);
    delegate void Bravo(string t);

    class MyClass
    {
        public int number;
        public MyClass(int n)
        {
            number = n;
        }
        public Alpha method;
    }

    class Program
    {
        static void Main()
        {
            MyClass A = new MyClass(100);
            MyClass B = new MyClass(200);
            // Полю объекта значением присваивается 
            // лямбда-выражение:
            A.method = n=>A.number + n;
            // Полю объекта значением присваивается 
            // лямбда-выражение:
            B.method = (int n)=>{
                return B.number - n;
            };
            int x = 80;
            Console.WriteLine("A.method({0}) = {1}", x, A.method(x)); 
            A.number = 300;
            Console.WriteLine("A.method({0}) = {1}", x, A.method(x)); 
            Console.WriteLine("B.method({0}) = {1}", x, B.method(x)); 
            Bravo show;
            // Присваивание переменной лямбда-выражения: 
            show = t=>Console.WriteLine("Teкст: \"{0}\"", t);
            show("Bravo");
            // Присваивание переменной лямбда-выражения: 
            show = (string t)=>{
                for(int k = 0; k < t.Length; k++) { 
                    Console.Write("|" + t[k]);
                }
                Console.WriteLine("|");
            };
            show("Bravo");
            // Задержка:
            Console.ReadLine();
        }
    }
}
Архив проекта можно взять здесь.

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


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

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




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