Compartir vía


LambdaExpression Clase

Definición

Describe una expresión lambda. Esto captura un bloque de código similar a un cuerpo del 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 método Lambda.

// 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 tipo LambdaExpression representa una expresión lambda en forma de árbol de expresión. El tipo Expression<TDelegate>, que 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 expresiones que representa una expresión lambda siempre es de tipo Expression<TDelegate>.

El valor de la propiedad NodeType de un LambdaExpression es Lambda.

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

Propiedades

Body

Obtiene el cuerpo de la expresión lambda.

CanReduce

Indica que el nodo se puede reducir a un nodo más sencillo. 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 este Expression.

NodeType

Obtiene el tipo de nodo de este 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 la llamada final.

Type

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

Type

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

(Heredado de Expression)

Métodos

Accept(ExpressionVisitor)

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

(Heredado de Expression)
Compile()

Genera un delegado que representa la expresión lambda.

Compile(Boolean)

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

Compile(DebugInfoGenerator)

Genera un delegado que representa la expresión lambda.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

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

CompileToMethod(MethodBuilder)

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

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Reduce()

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

(Heredado de Expression)
ReduceAndCheck()

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

(Heredado de Expression)
ReduceExtensions()

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

(Heredado de Expression)
ToString()

Devuelve una representación textual del Expression.

(Heredado de Expression)
VisitChildren(ExpressionVisitor)

Reduce el nodo y, a continuación, llama al delegado de visitante en la expresión reducida. El método produce una excepción si el nodo no se puede deducir.

(Heredado de Expression)

Se aplica a