Freigeben über


LambdaExpression Klasse

Definition

Beschreibt einen Lambdaausdruck. Dadurch wird ein mit einem .NET-Methodentext vergleichbarer Codeblock erfasst.

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
LambdaExpression
Abgeleitet

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie ein Ausdruck erstellt wird, der einen Lambdaausdruck 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 Lambdaausdruck in Form einer Ausdrucksstruktur dar. Der Expression<TDelegate> Typ, der von LambdaExpression abgeleitet wird und den Typ des Lambdaausdrucks expliziter erfasst, kann auch verwendet werden, um einen Lambdaausdruck darzustellen. Zur Laufzeit ist ein Ausdrucksstrukturknoten, der einen Lambdaausdruck 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 Text des Lambdaausdrucks ab.

CanReduce

Gibt an, dass der Knoten zu einem einfacheren Knoten reduziert werden kann. Wenn true zurückgegeben wird, kann Reduce() aufgerufen werden, um das reduzierte Formular zu erzeugen.

(Geerbt von Expression)
Name

Ruft den Namen des Lambdaausdrucks ab.

NodeType

Gibt den Knotentyp dieses Expression zurück.

NodeType

Ruft den Knotentyp dieses Expression ab.

(Geerbt von Expression)
Parameters

Ruft die Parameter des Lambdaausdrucks ab.

ReturnType

Ruft den Rückgabetyp des Lambdaausdrucks ab.

TailCall

Ruft den Wert ab, der angibt, ob der Lambdaausdruck mit der Endeaufrufoptimierung kompiliert wird.

Type

Ruft den statischen Typ des Ausdrucks ab, den dieser Expression darstellt.

Type

Ruft den statischen Typ des Ausdrucks ab, den dieser Expression darstellt.

(Geerbt von Expression)

Methoden

Accept(ExpressionVisitor)

Sendet an die spezifische Visit-Methode für diesen Knotentyp. Beispielsweise ruft MethodCallExpression die Methode VisitMethodCall(MethodCallExpression) auf.

(Geerbt von Expression)
Compile()

Erzeugt einen Delegaten, der den Lambdaausdruck darstellt.

Compile(Boolean)

Erzeugt einen interpretierten oder kompilierten Delegat, der den Lambdaausdruck darstellt.

Compile(DebugInfoGenerator)

Erzeugt einen Delegaten, der den Lambdaausdruck darstellt.

CompileToMethod(MethodBuilder)

Kompiliert den Lambdaausdruck in eine Methodendefinition.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Kompiliert den Lambdaausdruck in eine Methodendefinition und benutzerdefinierte Debuginformationen.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Reduce()

Reduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss.

(Geerbt von Expression)
ReduceAndCheck()

Reduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss.

(Geerbt von Expression)
ReduceExtensions()

Reduziert den Ausdruck zu einem bekannten Knotentyp (kein Erweiterungsknoten) oder gibt nur den Ausdruck zurück, wenn es sich um einen bereits bekannten Typ handelt.

(Geerbt von Expression)
ToString()

Gibt eine Textdarstellung des Expression zurück.

(Geerbt von Expression)
VisitChildren(ExpressionVisitor)

Reduziert den Knoten und ruft dann den Visitor-Delegaten für den reduzierten Ausdruck auf. Die Methode löst eine Ausnahme aus, wenn der Knoten nicht reduziert werden kann.

(Geerbt von Expression)

Gilt für: