Делегаты, непонятен вызов функции - 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;
}