Expression<TDelegate>.Compile Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
Compile() |
Kompiliert den von der Ausdrucksbaumstruktur beschriebenen Lambda-Ausdruck in ausführbaren Code und erzeugt einen Delegaten, der den Lambda-Ausdruck darstellt. |
Compile(Boolean) |
Kompiliert die Lambdaausdrücke, die von der Ausdrucksbaumstruktur als interpretierter oder kompilierter Code beschrieben werden, und erzeugt einen Delegaten, der den Lambdaausdruck darstellt. |
Compile(DebugInfoGenerator) |
Erzeugt einen Delegaten, der den Lambdaausdruck darstellt. |
Compile()
- Quelle:
- LambdaExpression.cs
- Quelle:
- LambdaExpression.cs
- Quelle:
- LambdaExpression.cs
Kompiliert den von der Ausdrucksbaumstruktur beschriebenen Lambda-Ausdruck in ausführbaren Code und erzeugt einen Delegaten, der den Lambda-Ausdruck darstellt.
public:
TDelegate Compile();
public TDelegate Compile ();
override this.Compile : unit -> 'Delegate
Public Function Compile () As TDelegate
Gibt zurück
Ein Delegat vom Typ TDelegate
, der den vom Expression<TDelegate> beschriebenen kompilierten Lambda-Ausdruck darstellt.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Compile eine Ausdrucksstruktur ausgeführt wird.
// 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
Hinweise
Die Compile -Methode erzeugt zur Laufzeit einen Delegaten vom Typ TDelegate
. Wenn dieser Delegat ausgeführt wird, weist er das Verhalten auf, das durch die Semantik von Expression<TDelegate>beschrieben wird.
Die Compile -Methode kann verwendet werden, um den Wert einer beliebigen Ausdrucksstruktur abzurufen. Erstellen Sie zunächst mithilfe der -Methode einen Lambdaausdruck, der den Ausdruck als Textkörper Lambda aufweist. Rufen Sie dann auf Compile , um einen Delegaten abzurufen, und führen Sie den Delegat aus, um den Wert des Ausdrucks abzurufen.
Gilt für:
Compile(Boolean)
- Quelle:
- LambdaExpression.cs
- Quelle:
- LambdaExpression.cs
- Quelle:
- LambdaExpression.cs
Kompiliert die Lambdaausdrücke, die von der Ausdrucksbaumstruktur als interpretierter oder kompilierter Code beschrieben werden, und erzeugt einen Delegaten, der den Lambdaausdruck darstellt.
public:
TDelegate Compile(bool preferInterpretation);
public TDelegate Compile (bool preferInterpretation);
override this.Compile : bool -> 'Delegate
Public Function Compile (preferInterpretation As Boolean) As TDelegate
Parameter
- preferInterpretation
- Boolean
true
, um anzugeben, dass der Ausdruck in ein interpretiertes Format kompiliert werden muss, sofern verfügbar; andernfalls false
.
Gibt zurück
Ein Delegat, der den kompilierten Lambdaausdruck darstellt, der durch das Expression<TDelegate>-Objekt beschrieben wird.
Gilt für:
Compile(DebugInfoGenerator)
- Quelle:
- LambdaExpression.cs
- Quelle:
- LambdaExpression.cs
- Quelle:
- LambdaExpression.cs
Erzeugt einen Delegaten, der den Lambdaausdruck darstellt.
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
Parameter
- debugInfoGenerator
- DebugInfoGenerator
Generator für Debuginformationen, mit dem der Compiler Sequenzpunkte markiert und lokale Variablen mit Anmerkungen versieht.
Gibt zurück
Ein Delegat, der die kompilierte Version des Lambdaausdrucks enthält.