Сегодня на форуме SQL.RU подсмотрел интересный код, который решает проблему использования локальных методов. Локальные методы — методы, которые находятся в других методах. C# не позволяет использовать следующую конструкцию:
01
classMyClass
02
{
03
publicintMyFunc()
04
{
05
publicintMyFunc2(intx, inty)
06
{
07
returnx + y;
08
}
09
10
returnMyFunc2(2,3);
11
}
12
}
Такой код компилятор просто не пропустит. Решение этой задачи кроется в использовании анонимных методах, основанных на делегатах и лямбда-выражений. Следующий код демонстрирует решение задачи: