static int x = 3; static Func<int,int> s (int y) { return z => x + y + z; } static void Main () { Func<int,int> p = s(4); Console.WriteLine (p(3)); }
Wenn die von s(4) konstruierte Funktion p aufgerufen wird, dann wird der s-Frame benötigt, steht aber nicht mehr im Stack.
⇒ Die (Frames in den) Closures müssen im Heap verwaltet werden.