У меня есть сомнения относительно объема переменных внутри анонимных функций в С#.
Рассмотрим программу ниже:
delegate void OtherDel(int x);
public static void Main()
{
OtherDel del2;
{
int y = 4;
del2 = delegate
{
Console.WriteLine("{0}", y);//Is y out of scope
};
}
del2();
}
Моя IDE VS2008 выдает следующие ошибки: [Практика - это класс внутри практики пространства имен]
1. error CS1643: не все пути кода возвращают значение в анонимном методе типа «Practice.Practice.OtherDel» 2. error CS1593: делегат «OtherDel» не принимает аргументы «0».
В книге: Illustrated C# 2008 (стр. 373) сказано, что переменная int y внутри области действия определения del2. Тогда почему эти ошибки.