Expression<TDelegate>.Compile Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| Compile() |
Compila a expressão lambda descrita pela árvore de expressões em 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ões em 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()
Compila a expressão lambda descrita pela árvore de expressões em 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
Devoluções
Um delegado do tipo TDelegate que representa a expressão lambda compilada descrita pelo Expression<TDelegate>.
Exemplos
O exemplo de código seguinte demonstra como Compile é usado para executar uma árvore de expressões.
// 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
Observações
O Compile método produz um delegado de tipo TDelegate em tempo de execução. Quando esse delegado é executado, 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ões. Primeiro, crie uma expressão lambda que tenha a expressão como corpo usando o Lambda método. Depois chama Compile para obter um delegado, e executa o delegado para obter o valor da expressão.
Aplica-se a
Compile(Boolean)
Compila a expressão lambda descrita pela árvore de expressões em 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 indicar que a expressão deve ser compilada numa forma interpretada, se estiver disponível; false caso contrário.
Devoluções
Um delegado que representa a expressão lambda compilada descrita pelo Expression<TDelegate>.
Aplica-se a
Compile(DebugInfoGenerator)
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
Gerador de informação de depuração usado pelo compilador para marcar pontos de sequência e anotar variáveis locais.
Devoluções
Um delegado contendo a versão compilada do lambda.