A local variable instantiated within a lambda expression is unique per invocation of the delegate instance. : Lambda « LINQ « C# / CSharp Tutorial






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());
    }
}








22.2.Lambda
22.2.1.Lambda expression used to declare a delegate
22.2.2.If your query's lambda expressions reference local variables, these variables are subject to outer variable semantics.
22.2.3.Lambda expression used to declare an expression tree
22.2.4.return a lambda function
22.2.5.A local variable instantiated within a lambda expression is unique per invocation of the delegate instance.
22.2.6.square is assigned the lambda expression x = > x * x:
22.2.7.A lambda expression has the following BNF form: (parameters) => expression-or-statement-block
22.2.8.A lambda expression can reference the local variables and parameters of the method in which it's defined.
22.2.9.List Sort With Lambda Expression
22.2.10.Using Lambda Expressions with Find method
22.2.11.Concise Lambda Expression
22.2.12.Lambda Expression