LambdaExpression Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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) |