Freigeben über


LambdaExpression Klasse

Definition

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

Gilt für: