Что выведет код Middle Делегаты и события обновлено
Счётчик на замыкании
Вопрос
Что выведет программа (.NET 8)? По строке на каждый вывод.
Func<int> MakeCounter()
{
int count = 0;
return () => ++count;
}
var c1 = MakeCounter();
var c2 = MakeCounter();
c1(); c1();
Console.WriteLine(c1());
Console.WriteLine(c2());
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 3, 1. Каждый вызов MakeCounter создаёт свою переменную count (свой объект-замыкание). c1 вызван трижды: печатается 3.
Что выведет
3
1
Разбор
Каждый вызов MakeCounter создаёт свою переменную count (свой объект-замыкание). c1 вызван трижды: печатается 3. У c2 свой счётчик: 1.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Что возвращает мультикаст-делегат
Следующий вопрос
Добавление и удаление методов в делегате