Что выведет код Middle Делегаты и события обновлено
Добавление и удаление методов в делегате
Вопрос
Что выведет программа (.NET 8)? По строке на каждый вывод.
Action a = () => Console.Write("A");
Action b = () => Console.Write("B");
Action chain = a + b + a;
chain();
Console.WriteLine();
chain -= a;
chain();
Console.WriteLine();
Console.WriteLine(chain.GetInvocationList().Length);
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: ABA, AB, 2. Список вызовов a + b + a это A B A.
Что выведет
ABA
AB
2
Разбор
Список вызовов a + b + a это A B A. Операция -= удаляет последнее вхождение a в списке, остаётся A B. В списке два метода.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.