Compartir a través de


LambdaExpression Clase

Definición

Describe una expresión lambda. Captura un bloque de código similar a un cuerpo de método. 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
Herencia
LambdaExpression
Derivado

Ejemplos

En el ejemplo siguiente se muestra cómo crear una expresión que representa una expresión lambda que agrega 1 al argumento pasado mediante el Lambda método .

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

Comentarios

El LambdaExpression tipo representa una expresión lambda en forma de árbol de expresión. El Expression<TDelegate> tipo, que se deriva de LambdaExpression y captura el tipo de la expresión lambda de forma más explícita, también se puede usar para representar una expresión lambda. En tiempo de ejecución, un nodo de árbol de expresión que representa una expresión lambda siempre es de tipo Expression<TDelegate>.

El valor de la NodeType propiedad de es LambdaExpressionLambda.

Use los métodos de Lambda fábrica para crear un LambdaExpression objeto .

Propiedades

Body

Obtiene el cuerpo de la expresión lambda.

CanReduce

Indica que el nodo se puede reducir a uno más simple. Si devuelve true, se puede llamar a Reduce() para generar el formulario reducido.

(Heredado de Expression)
Name

Obtiene el nombre de la expresión lambda.

NodeType

Devuelve el tipo de nodo de Expression.

NodeType

Obtiene el tipo de nodo de Expression.

(Heredado de Expression)
Parameters

Obtiene los parámetros de la expresión lambda.

ReturnType

Obtiene el tipo de valor devuelto de la expresión lambda.

TailCall

Obtiene el valor que indica si la expresión lambda se compilará con la optimización de llamada de cola.

Type

Obtiene el tipo estático de la expresión que Expression representa.

Type

Obtiene el tipo estático de la expresión que Expression representa.

(Heredado de Expression)

Métodos

Accept(ExpressionVisitor)

Envía la expresión al método de visita específico de este tipo de nodo. Por ejemplo, MethodCallExpression llama a VisitMethodCall(MethodCallExpression).

(Heredado de Expression)
Compile()

Genera un delegado que representa la expresión lambda.

Compile(Boolean)

Genera a un delegado interpretado o compilado que representa la expresión lambda.

Compile(DebugInfoGenerator)

Genera un delegado que representa la expresión lambda.

CompileToMethod(MethodBuilder)

Compila el lambda en una definición de método.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Compila el lambda en una definición de método e información de depuración personalizada.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Reduce()

Reduce este nodo a una expresión más simple. Si CanReduce devuelve true, debería devolver una expresión válida. Este método puede devolver otro nodo que se debe reducir a su vez.

(Heredado de Expression)
ReduceAndCheck()

Reduce este nodo a una expresión más simple. Si CanReduce devuelve true, debería devolver una expresión válida. Este método puede devolver otro nodo que se debe reducir a su vez.

(Heredado de Expression)
ReduceExtensions()

Reduce la expresión a un tipo de nodo conocido (no es un nodo de extensión) o, si ya es un tipo conocido, solo devuelve la expresión.

(Heredado de Expression)
ToString()

Devuelve una representación textual de Expression.

(Heredado de Expression)
VisitChildren(ExpressionVisitor)

Reduce el nodo y, a continuación, llama al delegado del visitante en la expresión reducida. El método inicia una excepción si el nodo no es reducible.

(Heredado de Expression)

Se aplica a