Анонимные методы в C#

Анонимные методы позволяют создавать метод без явного указания имени. Они используются вместе с делегатами и позволяют определить логику прямо в месте использования.

Определение анонимного метода

Анонимный метод объявляется с помощью ключевого слова delegate без указания имени метода.

Пример использования:

using System;

class Program
{
    delegate void MessageDelegate(string message);
    
    static void Main()
    {
        MessageDelegate showMessage = delegate (string message)
        {
            Console.WriteLine("Сообщение: " + message);
        };
        
        showMessage("Привет, мир!");
    }
}

Использование анонимных методов с делегатами

Анонимные методы удобны, когда требуется передавать небольшие фрагменты кода в качестве аргументов.

Пример с Func:

using System;

class Program
{
    static void Main()
    {
        Func<int, int, int> sum = delegate (int a, int b) 
        {
            return a + b;
        };
        
        Console.WriteLine(sum(3, 5)); // Выведет: 8
    }
}

Ограничения анонимных методов

  • Нельзя использовать out параметры.
  • Нельзя перегружать.
  • Не поддерживает атрибуты.

Когда использовать

  • Когда необходимо передать метод в качестве аргумента.
  • Когда требуется короткий код без явного создания метода.