Sdílet prostřednictvím


Expression<TDelegate>.Compile Metoda

Definice

Přetížení

Compile()

Zkompiluje výraz lambda popsaný stromem výrazů do spustitelného kódu a vytvoří delegáta, který představuje výraz lambda.

Compile(Boolean)

Zkompiluje výraz lambda popsaný stromem výrazů do interpretovaného nebo zkompilovaného kódu a vytvoří delegáta, který představuje výraz lambda.

Compile(DebugInfoGenerator)

Vytvoří delegáta, který představuje výraz lambda.

Compile()

Zdroj:
LambdaExpression.cs
Zdroj:
LambdaExpression.cs
Zdroj:
LambdaExpression.cs

Zkompiluje výraz lambda popsaný stromem výrazů do spustitelného kódu a vytvoří delegáta, který představuje výraz lambda.

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

Návraty

TDelegate

Delegát typu TDelegate , který představuje zkompilovaný výraz lambda, který Expression<TDelegate>popisuje .

Příklady

Následující příklad kódu ukazuje, jak Compile se používá ke spuštění stromu výrazu.


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

Poznámky

Metoda Compile vytvoří delegáta typu TDelegate za běhu. Při spuštění tohoto delegáta má chování popsané sémantikou objektu Expression<TDelegate>.

Metodu Compile lze použít k získání hodnoty libovolného stromu výrazů. Nejprve pomocí metody vytvořte výraz lambda, který má výraz jako tělo Lambda . Potom voláním Compile získáte delegáta a spuštěním delegáta získáte hodnotu výrazu.

Platí pro

Compile(Boolean)

Zdroj:
LambdaExpression.cs
Zdroj:
LambdaExpression.cs
Zdroj:
LambdaExpression.cs

Zkompiluje výraz lambda popsaný stromem výrazů do interpretovaného nebo zkompilovaného kódu a vytvoří delegáta, který představuje výraz 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 k označení, že výraz by měl být zkompilován do interpretované formy, pokud je k dispozici; false Jinak.

Návraty

TDelegate

Delegát, který představuje zkompilovaný výraz lambda, který Expression<TDelegate>popisuje .

Platí pro

Compile(DebugInfoGenerator)

Zdroj:
LambdaExpression.cs
Zdroj:
LambdaExpression.cs
Zdroj:
LambdaExpression.cs

Vytvoří delegáta, který představuje výraz 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

Ladění generátoru informací používaného kompilátorem k označení sekvenčních bodů a přidávání poznámek k místním proměnným.

Návraty

TDelegate

Delegát obsahující zkompilovanou verzi lambda.

Platí pro