A local variable instantiated within a lambda expression is unique per invocation of the delegate instance.

image_pdfimage_print
   
 

using System;
delegate int NumericSequence();

class Test {
    static NumericSequence Natural() {
        return () => { int seed = 0; return seed++; };
    }

    static void Main() {
        NumericSequence natural = Natural();
        Console.WriteLine(natural());
        Console.WriteLine(natural());
    }
}

    


This entry was posted in LINQ. Bookmark the permalink.