Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
 Compile Method
.NET Framework Class Library
Expression<(Of <(TDelegate>)>)..::.Compile Method

Updated: November 2007

Compiles the lambda expression described by the expression tree into executable code.

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

Visual Basic (Declaration)
Public Function Compile As TDelegate
Visual Basic (Usage)
Dim instance As Expression
Dim returnValue As TDelegate

returnValue = instance.Compile()
C#
public TDelegate Compile()
Visual C++
public:
TDelegate Compile()
J#
public TDelegate Compile()
JScript
public function Compile() : TDelegate

Return Value

Type: TDelegate

A delegate of type TDelegate that represents the lambda expression described by the Expression<(Of <(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<(Of <(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.

Visual Basic
' Lambda expression as data in the form of an expression tree.
Dim expression As System.Linq.Expressions.Expression(Of Func(Of Integer, Boolean)) = Function(ByVal i) i < 5
' Compile the expression tree into executable code.
Dim deleg As Func(Of Integer, Boolean) = expression.Compile()
' Invoke the method and print the output.
MsgBox(String.Format("deleg(4) = {0}", deleg(4)))

' This code produces the following output:
'
' deleg(4) = True


C#
// 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 Vista, Windows XP SP2, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker