Встречается на собеседованиях • сегодня

Что такое Delegate

Делегаты в C# — это объекты, которые ссылаются на методы. Они позволяют передавать методы как параметры, хранить их в переменных и вызывать динамически.

Ключевые особенности:

  • Типобезопасны (совпадают сигнатуры методов).
  • Поддерживают multicast (через += и -=).
  • Бывают встроенные (Action, Func, Predicate) и пользовательские.

Пример:

csharp
delegate int MathOp(int x, int y); // Объявление делегата  

class Program {  
    static int Add(int a, int b) => a + b;  
    static int Sub(int a, int b) => a - b;  

    static void Main() {  
        MathOp op = Add;  
        Console.WriteLine(op(5, 3)); // 8  

        op += Sub; // Multicast  
        Console.WriteLine(op(5, 3)); // 2 (вызов всех методов, но возврат последнего)  
    }  
}  

Использование:

  • Обратные вызовы (callbacks).
  • События (events).
  • LINQ и асинхронные операции.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы