Udostępnij za pośrednictwem


LambdaExpression Klasa

Definicja

Opisuje wyrażenie lambda. Spowoduje to przechwycenie bloku kodu podobnego do treści metody platformy .NET.

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
Dziedziczenie
LambdaExpression
Pochodne

Przykłady

W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące wyrażenie lambda, które dodaje 1 do przekazanego argumentu Lambda przy użyciu metody .

// 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

Uwagi

Typ LambdaExpression reprezentuje wyrażenie lambda w postaci drzewa wyrażeń. Typ Expression<TDelegate> , który pochodzi z LambdaExpression i przechwytuje typ wyrażenia lambda bardziej jawnie, może również służyć do reprezentowania wyrażenia lambda. W czasie wykonywania węzeł drzewa wyrażeń reprezentujący wyrażenie lambda jest zawsze typu Expression<TDelegate>.

Wartość NodeType właściwości a LambdaExpression to Lambda.

Użyj metod fabrycznych Lambda , aby utworzyć LambdaExpression obiekt.

Właściwości

Body

Pobiera treść wyrażenia lambda.

CanReduce

Wskazuje, że węzeł można zmniejszyć do prostszego węzła. Jeśli zwraca wartość true, funkcja Reduce() może zostać wywołana w celu utworzenia skróconej postaci.

(Odziedziczone po Expression)
Name

Pobiera nazwę wyrażenia lambda.

NodeType

Zwraca typ węzła tego Expressionelementu .

NodeType

Pobiera typ węzła tego Expressionelementu .

(Odziedziczone po Expression)
Parameters

Pobiera parametry wyrażenia lambda.

ReturnType

Pobiera zwracany typ wyrażenia lambda.

TailCall

Pobiera wartość wskazującą, czy wyrażenie lambda zostanie skompilowane przy użyciu optymalizacji wywołań końcowych.

Type

Pobiera statyczny typ wyrażenia, które reprezentuje Expression .

Type

Pobiera statyczny typ wyrażenia, które reprezentuje Expression .

(Odziedziczone po Expression)

Metody

Accept(ExpressionVisitor)

Wysyła do określonej metody visit dla tego typu węzła. Na przykład MethodCallExpression wywołuje metodę VisitMethodCall(MethodCallExpression).

(Odziedziczone po Expression)
Compile()

Tworzy delegata reprezentującego wyrażenie lambda.

Compile(Boolean)

Tworzy zinterpretowany lub skompilowany delegat reprezentujący wyrażenie lambda.

Compile(DebugInfoGenerator)

Tworzy delegata reprezentującego wyrażenie lambda.

CompileToMethod(MethodBuilder)

Kompiluje lambda do definicji metody.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Kompiluje lambda do definicji metody i niestandardowych informacji debugowania.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Reduce()

Zmniejsza ten węzeł do prostszego wyrażenia. Jeśli funkcja CanReduce zwróci wartość true, powinno to zwrócić prawidłowe wyrażenie. Ta metoda może zwrócić inny węzeł, który należy zmniejszyć.

(Odziedziczone po Expression)
ReduceAndCheck()

Zmniejsza ten węzeł do prostszego wyrażenia. Jeśli funkcja CanReduce zwróci wartość true, powinno to zwrócić prawidłowe wyrażenie. Ta metoda może zwrócić inny węzeł, który należy zmniejszyć.

(Odziedziczone po Expression)
ReduceExtensions()

Zmniejsza wyrażenie do znanego typu węzła (który nie jest węzłem rozszerzenia) lub po prostu zwraca wyrażenie, jeśli jest to już znany typ.

(Odziedziczone po Expression)
ToString()

Zwraca tekstową reprezentację obiektu Expression.

(Odziedziczone po Expression)
VisitChildren(ExpressionVisitor)

Zmniejsza węzeł, a następnie wywołuje delegata odwiedzających w wyrażeniu zredukowanym. Metoda zgłasza wyjątek, jeśli węzeł nie jest reducible.

(Odziedziczone po Expression)

Dotyczy