Udostępnij za pośrednictwem


Expression<TDelegate>.Compile Metoda

Definicja

Przeciążenia

Compile()

Kompiluje wyrażenie lambda opisane przez drzewo wyrażeń w kodzie wykonywalnym i tworzy delegata, który reprezentuje wyrażenie lambda.

Compile(Boolean)

Kompiluje wyrażenie lambda opisane przez drzewo wyrażeń w interpretowanym lub skompilowanym kodzie i tworzy delegata, który reprezentuje wyrażenie lambda.

Compile(DebugInfoGenerator)

Tworzy delegata, który reprezentuje wyrażenie lambda.

Compile()

Źródło:
LambdaExpression.cs
Źródło:
LambdaExpression.cs
Źródło:
LambdaExpression.cs

Kompiluje wyrażenie lambda opisane przez drzewo wyrażeń w kodzie wykonywalnym i tworzy delegata, który reprezentuje wyrażenie lambda.

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

Zwraca

TDelegate

Delegat typu TDelegate , który reprezentuje skompilowane wyrażenie lambda opisane przez Expression<TDelegate>.

Przykłady

W poniższym przykładzie kodu pokazano, jak Compile jest używany do wykonywania drzewa wyrażeń.


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

Uwagi

Metoda Compile tworzy delegata typu TDelegate w czasie wykonywania. Po wykonaniu tego delegata ma ono zachowanie opisane przez semantyka elementu Expression<TDelegate>.

Metoda Compile może służyć do uzyskania wartości dowolnego drzewa wyrażeń. Najpierw utwórz wyrażenie lambda zawierające wyrażenie jako jego treść przy użyciu Lambda metody . Następnie wywołaj polecenie Compile w celu uzyskania delegata i wykonaj delegata, aby uzyskać wartość wyrażenia.

Dotyczy

Compile(Boolean)

Źródło:
LambdaExpression.cs
Źródło:
LambdaExpression.cs
Źródło:
LambdaExpression.cs

Kompiluje wyrażenie lambda opisane przez drzewo wyrażeń w interpretowanym lub skompilowanym kodzie i tworzy delegata, który reprezentuje wyrażenie lambda.

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

Parametry

preferInterpretation
Boolean

true aby wskazać, że wyrażenie powinno być skompilowane do interpretowanego formularza, jeśli jest dostępne; false Inaczej.

Zwraca

TDelegate

Delegat reprezentujący skompilowane wyrażenie lambda opisane przez Expression<TDelegate>element .

Dotyczy

Compile(DebugInfoGenerator)

Źródło:
LambdaExpression.cs
Źródło:
LambdaExpression.cs
Źródło:
LambdaExpression.cs

Tworzy delegata, który reprezentuje wyrażenie 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

Parametry

debugInfoGenerator
DebugInfoGenerator

Debugowanie generatora informacji używanych przez kompilator do oznaczania punktów sekwencji i dodawania adnotacji do zmiennych lokalnych.

Zwraca

TDelegate

Delegat zawierający skompilowany wersję lambda.

Dotyczy