using System;
delegate int CountIt(int end);
class VarCapture
{
static CountIt Counter()
{
int sum = 0;
CountIt ctObj = delegate(int end)
{
for (int i = 0; i <= end; i++)
{
Console.WriteLine(i);
sum += i;
}
return sum;
};
return ctObj;
}
static void Main()
{
// Получить результат подсчета.
CountIt count = Counter();
int result;
result = count(3);
Console.WriteLine("Сумма 3 равна " + result);
Console.WriteLine();
result = count(5);
Console.WriteLine("Сумма 5 равна " + result);
}
}
Почему в данном фрагменте требуется создать доп. метод Count ? В книге написано , что это делается для сохранения значения перем. sum ,но если убрать метод то тогда анонимный метод не видит перем. sum. Можете описать ,как устроен этот процесс ?