Делегаты, непонятен вызов функции - C#

Узнай цену своей работы

Формулировка задачи:

Есть такой код Непонятна строчка Countlt ctObj = delegate(int end); Вместо ctObj , а мы вызываем count(3)? Спасибо заранее
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Delegate
  7. {
  8. delegate int Countlt(int end);
  9. class VarCapture
  10. {
  11. static Countlt Counter()
  12. {
  13. int sum = 0;
  14. // Здесь подсчитанная сумма сохраняется в переменной sum.
  15. Countlt ctObj = delegate(int end)
  16. {
  17. for (int i = 0; i <= end; i++)
  18. {
  19. Console.WriteLine(i);
  20. sum += i;
  21. }
  22. return sum;
  23. };
  24. return ctObj;
  25. }
  26. static void Main()
  27. {
  28. // Получить результат подсчета.
  29. Countlt count = Counter();
  30. int result;
  31. result = count(3);
  32. Console.WriteLine("Сумма 3 равна " + result);
  33. Console.WriteLine();
  34. result = count(5);
  35. Console.WriteLine("Сумма 5 равна " + result);
  36. }
  37. }
  38. }
А мы пишем Countlt count = Counter(); но она же не принимает аргументов.

Решение задачи: «Делегаты, непонятен вызов функции»

textual
Листинг программы
  1. static Countlt Counter()
  2. {
  3.     int sum = 0;
  4.     // Здесь подсчитанная сумма сохраняется в переменной sum.
  5.     Countlt ctObj = Sum;
  6.     return ctObj;
  7. }
  8.  
  9. static int Sum(int end)
  10. {
  11.     int sum = 0;
  12.     for (int i = 0; i <= end; i++)
  13.     {
  14.         Console.WriteLine(i);
  15.         sum += i;
  16.     }
  17.     return sum;
  18. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут