Expression<TDelegate>.Compile Método
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |
- 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();
public TDelegate Compile ();
override this.Compile : unit -> 'Delegate
Public Function Compile () As TDelegate
Retornos
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
*/
' 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
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 |
- 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);
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 a expressão deverá ser compilada em um formato interpretado, se ele estiver disponível; false
caso contrário.
Retornos
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 |
- 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);
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
O gerador de informações de depuração usado pelo compilador para marcar pontos de sequência e anotar as variáveis locais.
Retornos
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 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: