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

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

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

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

namespace pr180_1
{
    delegate char MyDelegate(int n);
    class MyClass
    {
        public char symbol; 
        public MyDelegate get;
        public MyClass(char s, MyDelegate md)
        {
            symbol = s; get = md;
        }
        public void set(MyDelegate md)
        {
            get = md;
        }
    }

    class Program
    {
        static void Main()
        {
            // Создание объекта. Вторьм аргументом является 
            // лямбда-выражение:
            MyClass obj = new MyClass('K', n => (char)('A' + n));
            Console.WriteLine("Символ: \'{0}\'", obj.get(3));
            // Вызов метода, аргументом которому передано 
            // лямбда-выражение:
            obj.set(n => (char)(obj.symbol + n));
            Console.WriteLine("Символ: \'{0}\'", obj.get(3));
            // Задержка:
            Console.ReadLine();
        }
    }
}
Архив проекта можно взять здесь.

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


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

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




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