LambdaExpression Klasse
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.
Beschreibt einen Lambda-Ausdruck. Dadurch wird ein Codeblock erfasst, der einem .NET-Methodentext ähnelt.
public ref class LambdaExpression abstract : System::Linq::Expressions::Expression
public ref class LambdaExpression : System::Linq::Expressions::Expression
public abstract class LambdaExpression : System.Linq.Expressions.Expression
public class LambdaExpression : System.Linq.Expressions.Expression
type LambdaExpression = class
inherit Expression
Public MustInherit Class LambdaExpression
Inherits Expression
Public Class LambdaExpression
Inherits Expression
- Vererbung
- Abgeleitet
Beispiele
Im folgenden Beispiel wird das Erstellen eines Ausdrucks veranschaulicht, der einen Lambda-Ausdruck darstellt, der dem übergebenen Argument mithilfe der Lambda-Methode 1 hinzufügt.
// Add the following directive to your file:
// using System.Linq.Expressions;
// A parameter for the lambda expression.
ParameterExpression paramExpr = Expression.Parameter(typeof(int), "arg");
// This expression represents a lambda expression
// that adds 1 to the parameter value.
LambdaExpression lambdaExpr = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
new List<ParameterExpression>() { paramExpr }
);
// Print out the expression.
Console.WriteLine(lambdaExpr);
// Compile and run the lamda expression.
// The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1));
// This code example produces the following output:
//
// arg => (arg +1)
// 2
' Add the following directive to your file:
' Imports System.Linq.Expressions
' A parameter for the lambda expression.
Dim paramExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "arg")
' This expression represents a lambda expression
' that adds 1 to the parameter value.
Dim lambdaExpr As LambdaExpression = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
New List(Of ParameterExpression)() From {paramExpr}
)
' Print out the expression.
Console.WriteLine(lambdaExpr)
' Compile and run the lamda expression.
' The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1))
' This code example produces the following output:
'
' arg => (arg +1)
' 2
Hinweise
Der LambdaExpression Typ stellt einen Lambda-Ausdruck in Form einer Ausdrucksstruktur dar. Der Expression<TDelegate> Typ, der von LambdaExpression abgeleitet wird und den Typ des Lambda-Ausdrucks expliziter erfasst, kann auch verwendet werden, um einen Lambda-Ausdruck darzustellen. Zur Laufzeit ist ein Ausdrucksstrukturknoten, der einen Lambda-Ausdruck darstellt, immer vom Typ Expression<TDelegate>.
Der Wert der NodeType-Eigenschaft eines LambdaExpression ist Lambda.
Verwenden Sie die Lambda Factorymethoden, um ein LambdaExpression-Objekt zu erstellen.
Eigenschaften
Body |
Ruft den Textkörper des Lambda-Ausdrucks ab. |
CanReduce |
Gibt an, dass der Knoten auf einen einfacheren Knoten reduziert werden kann. Wenn dies "true" zurückgibt, kann "Reduce()" aufgerufen werden, um die reduzierte Form zu erzeugen. (Geerbt von Expression) |
Name |
Ruft den Namen des Lambda-Ausdrucks ab. |
NodeType |
Gibt den Knotentyp dieses Expressionzurück. |
NodeType |
Ruft den Knotentyp dieses Expressionab. (Geerbt von Expression) |
Parameters |
Ruft die Parameter des Lambda-Ausdrucks ab. |
ReturnType |
Ruft den Rückgabetyp des Lambda-Ausdrucks ab. |
TailCall |
Ruft den Wert ab, der angibt, ob der Lambda-Ausdruck mit der Tail-Aufrufoptimierung kompiliert wird. |
Type |
Ruft den statischen Typ des Ausdrucks ab, den diese Expression darstellt. |
Type |
Ruft den statischen Typ des Ausdrucks ab, den diese Expression darstellt. (Geerbt von Expression) |
Methoden
Accept(ExpressionVisitor) |
Verteilt an die spezifische Besuchsmethode für diesen Knotentyp. Beispielsweise ruft MethodCallExpression die VisitMethodCall(MethodCallExpression)auf. (Geerbt von Expression) |
Compile() |
Erzeugt einen Delegaten, der den Lambda-Ausdruck darstellt. |
Compile(Boolean) |
Erzeugt einen interpretierten oder kompilierten Delegaten, der den Lambda-Ausdruck darstellt. |
Compile(DebugInfoGenerator) |
Erzeugt einen Delegaten, der den Lambda-Ausdruck darstellt. |
CompileToMethod(MethodBuilder, DebugInfoGenerator) |
Kompiliert die Lambda-Funktion in einer Methodendefinition und benutzerdefinierten Debuginformationen. |
CompileToMethod(MethodBuilder) |
Kompiliert die Lambda-Funktion in einer Methodendefinition. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
Reduce() |
Reduziert diesen Knoten auf einen einfacheren Ausdruck. Wenn CanReduce "true" zurückgibt, sollte dieser einen gültigen Ausdruck zurückgeben. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss. (Geerbt von Expression) |
ReduceAndCheck() |
Reduziert diesen Knoten auf einen einfacheren Ausdruck. Wenn CanReduce "true" zurückgibt, sollte dieser einen gültigen Ausdruck zurückgeben. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss. (Geerbt von Expression) |
ReduceExtensions() |
Reduziert den Ausdruck auf einen bekannten Knotentyp (der kein Erweiterungsknoten ist) oder gibt nur den Ausdruck zurück, wenn er bereits ein bekannter Typ ist. (Geerbt von Expression) |
ToString() |
Gibt eine Textdarstellung der Expressionzurück. (Geerbt von Expression) |
VisitChildren(ExpressionVisitor) |
Reduziert den Knoten und ruft dann den Besucherdelegat für den reduzierten Ausdruck auf. Die Methode löst eine Ausnahme aus, wenn der Knoten nicht reducierbar ist. (Geerbt von Expression) |