Export (0) Print
Expand All

Expression<TDelegate>.Compile Method

Compiles the lambda expression described by the expression tree into executable code and produces a delegate that represents the lambda expression.

Namespace:  System.Linq.Expressions
Assemblies:   System.Core (in System.Core.dll)
  System.Linq.Expressions (in System.Linq.Expressions.dll)

public TDelegate Compile()

Return Value

Type: TDelegate
A delegate of type TDelegate that represents the compiled lambda expression described by the Expression<TDelegate>.

The Compile method produces a delegate of type TDelegate at runtime. When that delegate is executed, it has the behavior described by the semantics of the Expression<TDelegate>.

The Compile method can be used to obtain the value of any expression tree. First, create a lambda expression that has the expression as its body by using the Lambda method. Then call Compile to obtain a delegate, and execute the delegate to obtain the value of the expression.

The following code example demonstrates how Compile is used to execute an expression tree.


            // Lambda expression as data in the form of an expression tree.
            System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
            // Compile the expression tree into executable code.
            Func<int, bool> deleg = expr.Compile();
            // Invoke the method and print the output.
            Console.WriteLine("deleg(4) = {0}", deleg(4));

            /*  This code produces the following output:

                deleg(4) = True
            */

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft