Partager via


Expression<TDelegate>.Compile Méthode

Définition

Surcharges

Compile()

Compile l'expression lambda décrite par l'arborescence de l'expression dans le code exécutable et produit un délégué qui représente l'expression lambda.

Compile(Boolean)

Compile l’expression lambda décrite par l’arborescence de l’expression dans du code interprété ou compilé, et produit un délégué qui représente l’expression lambda.

Compile(DebugInfoGenerator)

Produit un délégué qui représente l'expression lambda.

Compile()

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

Compile l'expression lambda décrite par l'arborescence de l'expression dans le code exécutable et produit un délégué qui représente l'expression lambda.

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

Retours

TDelegate

Délégué de type TDelegate qui représente l'expression lambda compilée décrite par Expression<TDelegate>.

Exemples

L’exemple de code suivant montre comment Compile est utilisé pour exécuter une arborescence d’expressions.


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

Remarques

La Compile méthode produit un délégué de type TDelegate au moment de l’exécution. Lorsque ce délégué est exécuté, il a le comportement décrit par la sémantique du Expression<TDelegate>.

La Compile méthode peut être utilisée pour obtenir la valeur de n’importe quelle arborescence d’expressions. Tout d’abord, créez une expression lambda qui a l’expression comme corps à l’aide de la Lambda méthode . Appelez Compile ensuite pour obtenir un délégué, puis exécutez le délégué pour obtenir la valeur de l’expression.

S’applique à

Compile(Boolean)

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

Compile l’expression lambda décrite par l’arborescence de l’expression dans du code interprété ou compilé, et produit un délégué qui représente l’expression lambda.

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

Paramètres

preferInterpretation
Boolean

true pour indiquer que l’expression doit être compilée en un formulaire interprété, si disponible ; false dans le cas contraire.

Retours

TDelegate

Délégué qui représente l’expression lambda compilée décrite par Expression<TDelegate>.

S’applique à

Compile(DebugInfoGenerator)

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

Produit un délégué qui représente l'expression 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

Paramètres

debugInfoGenerator
DebugInfoGenerator

Générateur d'informations de débogage utilisé par le compilateur pour marquer les points de séquence et annoter les variables locales.

Retours

TDelegate

Délégué qui contient la version compilée du lambda.

S’applique à