Expression<TDelegate>.Compile Método

Definición

Sobrecargas

Nombre Description
Compile()

Compila la expresión lambda descrita por el árbol de expresiones en código ejecutable y genera un delegado que representa la expresión lambda.

Compile(Boolean)

Compila la expresión lambda descrita por el árbol de expresiones en código interpretado o compilado y genera un delegado que representa la expresión lambda.

Compile(DebugInfoGenerator)

Genera un delegado que representa la expresión lambda.

Compile()

Compila la expresión lambda descrita por el árbol de expresiones en código ejecutable y genera un delegado que representa la expresión lambda.

public:
 TDelegate Compile();
public TDelegate Compile();
override this.Compile : unit -> 'Delegate
Public Function Compile () As TDelegate

Devoluciones

TDelegate

Delegado de tipo TDelegate que representa la expresión lambda compilada descrita por .Expression<TDelegate>

Ejemplos

En el ejemplo de código siguiente se muestra cómo Compile se usa para ejecutar un árbol de expresiones.


// 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
*/

' 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

Comentarios

El Compile método genera un delegado de tipo TDelegate en tiempo de ejecución. Cuando se ejecuta ese delegado, tiene el comportamiento descrito por la semántica de Expression<TDelegate>.

El Compile método se puede usar para obtener el valor de cualquier árbol de expresión. En primer lugar, cree una expresión lambda que tenga la expresión como su cuerpo mediante el Lambda método . A continuación, llame Compile a para obtener un delegado y ejecute el delegado para obtener el valor de la expresión.

Se aplica a

Compile(Boolean)

Compila la expresión lambda descrita por el árbol de expresiones en código interpretado o compilado y genera un delegado que representa la expresión lambda.

public:
 TDelegate Compile(bool preferInterpretation);
public TDelegate Compile(bool preferInterpretation);
override this.Compile : bool -> 'Delegate
Public Function Compile (preferInterpretation As Boolean) As TDelegate

Parámetros

preferInterpretation
Boolean

true para indicar que la expresión debe compilarse en un formulario interpretado, si está disponible; false de lo contrario.

Devoluciones

TDelegate

Delegado que representa la expresión lambda compilada descrita por .Expression<TDelegate>

Se aplica a

Compile(DebugInfoGenerator)

Genera un delegado que representa la expresión lambda.

public:
 TDelegate Compile(System::Runtime::CompilerServices::DebugInfoGenerator ^ debugInfoGenerator);
public TDelegate Compile(System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator);
override this.Compile : System.Runtime.CompilerServices.DebugInfoGenerator -> 'Delegate
Public Function Compile (debugInfoGenerator As DebugInfoGenerator) As TDelegate

Parámetros

debugInfoGenerator
DebugInfoGenerator

Generador de información de depuración usado por el compilador para marcar puntos de secuencia y anotar variables locales.

Devoluciones

TDelegate

Delegado que contiene la versión compilada de la expresión lambda.

Se aplica a