Expression<TDelegate>.Compile Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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
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
Delegát obsahující zkompilovanou verzi lambda.