Condividi tramite


LambdaExpression Classe

Definizione

Descrive un'espressione lambda. Acquisisce un blocco di codice simile al corpo di un 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.

Usare i Lambda metodi factory per creare un LambdaExpression oggetto .

Proprietà

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 generare la forma ridotta.

(Ereditato da Expression)
Name

Ottiene il nome dell'espressione lambda.

NodeType

Restituisce il tipo di nodo di Expression.

NodeType

Ottiene il tipo di nodo di Expression.

(Ereditato da Expression)
Parameters

Ottiene i parametri dell'espressione lambda.

ReturnType

Ottiene il tipo di ritorno dell'espressione lambda.

TailCall

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

Type

Ottiene il tipo statico dell'espressione rappresentata da Expression.

Type

Ottiene il tipo statico dell'espressione rappresentata da Expression.

(Ereditato da Expression)

Metodi

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)

Compila il lambda in una definizione del metodo.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Compila il lambda in una definizione del metodo e informazioni di debug personalizzate.

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 l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Reduce()

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

(Ereditato da Expression)
ReduceAndCheck()

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

(Ereditato da Expression)
ReduceExtensions()

Riduce l'espressione a un tipo di nodo noto (diverso da un nodo di estensione) o restituisce solo l'espressione se è già un tipo noto.

(Ereditato da Expression)
ToString()

Restituisce una rappresentazione testuale di Expression.

(Ereditato da Expression)
VisitChildren(ExpressionVisitor)

Riduce il nodo, quindi chiama il delegato del visitatore sull'espressione ridotta. Se il nodo non è riducibile, il metodo genera un'eccezione.

(Ereditato da Expression)

Si applica a