Анонимный метод

Приветствую всех, сегодня рассмотрим примеры и определения анонимных методов.

Анонимный метод- это метод который не имеет имени и не принадлежит ни какому классу.

Анонимная функция – это оператор или выражение «inline«, которое можно использовать каждый раз, когда ожидается тип делегата. Ее можно использовать для инициализации
именованного делегата или подставить вместо типа именованного делегата в качестве параметра метода. Существует два типа анонимных функций, — это Лямбда-выражения и Анонимные методы. Анонимными являются методы, у которых нет имени. Это один из способов создать безымянный блок программы, который будет связан с конкретным делегатом, т. е. станет выполняться через делегата.

Чтобы написать анонимный метод, понадобится указать ключевое слово delegate, затем(необязательно) объявление параметра и наконец, тела метода. Ниже представлены два варианта вызова анонимного метода. Эта техника называется предположения делегата.

  delegate int Anonim(int x , int y, int w);
        static void Main(string[] args)
        {

            Anonim a = delegate (int x, int y, int w) { return (x + y + w) / 3; };
            
            Console.WriteLine(a(2,3,4));
            Console.ReadKey();

        }

И с помощью лямбда-выражения

private delegate double Anonim(int a, int b, int c);

        static void Main()
        {
           Anonim del = (a, b, c) => (double)(a + b + c) / 3;
           Console.WriteLine("Среднее арифметическое введенных числел {0:##.###}", del(2, 3, 4));

            Console.ReadKey();
        }

Когда компилятор встречает ключевое слово delegate с круглыми скобками, в которых может быть или отсутствовать список параметров, а за ключевым словом идет открывающая фигурная скобка, он знает, что начался анонимный метод. Блок исполняемых команд — это команды, заключенные в фигурные скобки. Блок должен обязательно заканчиваться точкой с запятой, как обычный оператор. Когда компилятор находит ключевое слово delegate в теле метода, он ожидает, что за ним последует тело анонимного метода. Анонимный
метод можно присвоить ссылке на делегат. Заметим также, что можно использовать оператор += , чтобы заставить экземпляр делегата ссылаться на несколько методов сразу (не важно, анонимных или нет).

Обновлено: 23.03.2018 — 11:24

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.