Local functions e Lambda Expressions parecem resolver os mesmos tipos de problema. Entretanto, internamente, são implementados, frequentemente, de forma signficativamente distinta.
Considere os dois códigos que seguem
Comecemos comparando as duas funções que seguem:
static void Foo() { Func<int> theAnswer = () => 42; Console.WriteLine(theAnswer()); }
e
static void Foo() { int theAnswer() => 42; Console.WriteLine(theAnswer()); }