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
Assembly: System.Core (in System.Core.dll)
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
*/
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.