C#: Recursive functions with Lambdas
问题 The below does not compile: Func<int, int> fac = n => (n <= 1) ? 1 : n * fac(n - 1); Local variable 'fac' might not be initialized before accessing How can you make a recursive function with lambdas? [Update] Here are also two links that I found interesting to read: Eric Lippert's "Why does a recursive lambda cause a definite assignment error?" Anonymous Recursion in C# 回答1: This particular style of function is not supported by C# as a single line declaration. You have to separate out the