Condividi tramite


LambdaExpression Classe

Definizione

Descrive un'espressione lambda. In questo modo viene acquisito un blocco di codice simile a un corpo del metodo .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
Ereditarietà
LambdaExpression
Derivato

Esempio

Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta un'espressione lambda che aggiunge 1 all'argomento passato usando il Lambda metodo .

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

Commenti

Il LambdaExpression tipo rappresenta un'espressione lambda sotto forma di albero delle espressioni. Il Expression<TDelegate> tipo, che deriva da LambdaExpression e acquisisce il tipo dell'espressione lambda in modo più esplicito, può essere usato anche per rappresentare un'espressione lambda. In fase di esecuzione, un nodo dell'albero delle espressioni che rappresenta un'espressione lambda è sempre di tipo Expression<TDelegate>.

Il valore della NodeType proprietà di un LambdaExpression oggetto è Lambda.

Utilizzare i Lambda metodi factory per creare un LambdaExpression oggetto .

Proprietà

Nome Descrizione
Body

Ottiene il corpo dell'espressione lambda.

CanReduce

Indica che il nodo può essere ridotto a un nodo più semplice. Se restituisce true, è possibile chiamare Reduce() per produrre la forma ridotta.

(Ereditato da Expression)
Name

Ottiene il nome dell'espressione lambda.

NodeType

Restituisce il tipo di nodo dell'oggetto Expression.

NodeType

Ottiene il tipo di nodo dell'oggetto Expression.

(Ereditato da Expression)
Parameters

Ottiene i parametri dell'espressione lambda.

ReturnType

Ottiene il tipo restituito dell'espressione lambda.

TailCall

Ottiene il valore che indica se l'espressione lambda verrà compilata con l'ottimizzazione della chiamata finale.

Type

Ottiene il tipo statico dell'espressione rappresentata da .Expression

Type

Ottiene il tipo statico dell'espressione rappresentata da .Expression

(Ereditato da Expression)

Metodi

Nome Descrizione
Accept(ExpressionVisitor)

Invia al metodo visit specifico per questo tipo di nodo. Ad esempio, MethodCallExpression chiama .VisitMethodCall(MethodCallExpression)

(Ereditato da Expression)
Compile()

Produce un delegato che rappresenta l'espressione lambda.

Compile(Boolean)

Produce un delegato interpretato o compilato che rappresenta l'espressione lambda.

Compile(DebugInfoGenerator)

Produce un delegato che rappresenta l'espressione lambda.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Compila l'espressione lambda in una definizione di metodo e in informazioni di debug personalizzate.

CompileToMethod(MethodBuilder)

Compila l'espressione lambda in una definizione di metodo.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Reduce()

Riduce questo nodo a un'espressione più semplice. Se CanReduce restituisce true, verrà restituita un'espressione valida. Questo metodo può restituire un altro nodo che deve essere ridotto.

(Ereditato da Expression)
ReduceAndCheck()

Riduce questo nodo a un'espressione più semplice. Se CanReduce restituisce true, verrà restituita un'espressione valida. Questo metodo può restituire un altro nodo che deve essere ridotto.

(Ereditato da Expression)
ReduceExtensions()

Riduce l'espressione a un tipo di nodo noto (che non è un nodo di estensione) o restituisce semplicemente l'espressione se è già un tipo noto.

(Ereditato da Expression)
ToString()

Restituisce una rappresentazione testuale dell'oggetto Expression.

(Ereditato da Expression)
VisitChildren(ExpressionVisitor)

Riduce il nodo e quindi chiama il delegato visitor nell'espressione ridotta. Il metodo genera un'eccezione se il nodo non è reducibile.

(Ereditato da Expression)

Si applica a