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

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

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

Есть такой код Непонятна строчка Countlt ctObj = delegate(int end); Вместо ctObj , а мы вызываем count(3)? Спасибо заранее
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Delegate
{
    delegate int Countlt(int end);
 
    class VarCapture
    {
        static Countlt Counter()
        {
            int sum = 0;
            // Здесь подсчитанная сумма сохраняется в переменной sum. 
            Countlt ctObj = delegate(int end)
            {
                for (int i = 0; i <= end; i++)
                {
                    Console.WriteLine(i);
                    sum += i;
                }
                return sum;
            };
            return ctObj;
        }
        static void Main()
        {
            // Получить результат подсчета. 
            Countlt count = Counter();
            int result;
            result = count(3);
            Console.WriteLine("Сумма 3 равна " + result);
            Console.WriteLine();
            result = count(5);
            Console.WriteLine("Сумма 5 равна " + result);
        }
    }
 
}
А мы пишем Countlt count = Counter(); но она же не принимает аргументов.

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

textual
Листинг программы
static Countlt Counter()
{
    int sum = 0;
    // Здесь подсчитанная сумма сохраняется в переменной sum. 
    Countlt ctObj = Sum;
    return ctObj;
}
 
static int Sum(int end)
{
    int sum = 0;
    for (int i = 0; i <= end; i++)
    {
        Console.WriteLine(i);
        sum += i;
    }
    return sum;
}

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


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

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

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