2019年10月9日

C#のローカルで関数定義の冗長さについて

C#でローカル関数を定義してそれを再帰的に呼び出したい場合

var f = new Func<int, int, int>((acc, i)=>
{
    if(i == 10)
    {
        return acc;
    }
    else
     {
          return f(acc + i, i + 1);
     }
});
とかやりたい場合、これではコンパイルエラーなので一旦fがあるよってことを示すためだけに
var f = new Func<int, int, int>((acc, i) => 0);
みたいなのを一旦宣言してから再度本物の関数を記述してるのだけどこれがとんでもなく煩雑な気がするのだけどどうするのかね
Aggregateって案はもちろんなしで
なんか便利な方法しってる人は教えてほしいな