Встречается на 27% собеседований по C#
Какие знаешь виды делегатов
В C# есть несколько видов делегатов:
-
Обычные делегаты – объявляются с ключевым словом
delegate.csharpdelegate void MyDelegate(string message); -
Action – обобщённый делегат для методов без возвращаемого значения (до 16 параметров).
csharpAction<int, string> action = (x, s) => Console.WriteLine($"{s}: {x}");
-
Func – обобщённый делегат для методов с возвращаемым значением (последний параметр – возвращаемый тип).
csharpFunc<int, int, int> sum = (a, b) => a + b; -
Predicate – делегат для проверки условия (возвращает
bool).csharpPredicate<int> isEven = x => x % 2 == 0; -
EventHandler – стандартный делегат для событий.
csharpevent EventHandler MyEvent; -
Multicast-делегаты – могут содержать несколько методов и вызывать их цепочкой.
csharpMyDelegate del1 = Method1; MyDelegate del2 = Method2; MyDelegate combined = del1 + del2;
Каждый тип удобен в разных сценариях, особенно Action и Func благодаря обобщённости.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы