ラムダ式で再帰

こうかな、と

using System;

namespace CsConsole3
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<int, int> fact = null;
            fact = x => x == 0 ? 1 : x * fact(x - 1);

            Console.WriteLine(fact(3)); // 6
        }
    }
}

おー、動いたー