Expression<TDelegate>.Compile Método

Definição

Sobrecargas

Compile()

Compila a expressão lambda descrita pela árvore de expressão em um código executável e produz um delegado que representa a expressão lambda.

Compile(Boolean)

Compila a expressão lambda descrita pela árvore de expressão em um código interpretado ou compilado e produz um delegado que representa a expressão lambda.

Compile(DebugInfoGenerator)

Produz um delegado que representa a expressão lambda.

Compile()

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Compila a expressão lambda descrita pela árvore de expressão em um código executável e produz um delegado que representa a expressão lambda.

public TDelegate Compile ();

Retornos

TDelegate

Um delegado do tipo TDelegate que representa a expressão lambda compilada descrita pelo Expression<TDelegate>.

Exemplos

O exemplo de código a seguir demonstra como Compile é usado para executar uma árvore de expressão.


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

Comentários

O Compile método produz um delegado do tipo TDelegate em runtime. Quando esse delegado é executado, ele tem o comportamento descrito pela semântica do Expression<TDelegate>.

O Compile método pode ser usado para obter o valor de qualquer árvore de expressão. Primeiro, crie uma expressão lambda que tenha a expressão como seu corpo usando o Lambda método . Em seguida, chame Compile para obter um delegado e execute o delegado para obter o valor da expressão.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Compile(Boolean)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Compila a expressão lambda descrita pela árvore de expressão em um código interpretado ou compilado e produz um delegado que representa a expressão lambda.

public TDelegate Compile (bool preferInterpretation);

Parâmetros

preferInterpretation
Boolean

true para indicar que a expressão deverá ser compilada em um formato interpretado, se ele estiver disponível; false caso contrário.

Retornos

TDelegate

Um delegado que representa a expressão lambda compilada descrita pelo Expression<TDelegate>.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.6, 2.0, 2.1

Compile(DebugInfoGenerator)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Produz um delegado que representa a expressão lambda.

public TDelegate Compile (System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator);

Parâmetros

debugInfoGenerator
DebugInfoGenerator

O gerador de informações de depuração usado pelo compilador para marcar pontos de sequência e anotar as variáveis locais.

Retornos

TDelegate

Um delegado que contém a versão compilada da expressão lambda.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1