LambdaExpression Classe

Definição

Descreve uma expressão lambda. Isto captura um bloco de código semelhante ao corpo de um 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
Herança
LambdaExpression
Derivado

Exemplos

O exemplo seguinte demonstra como criar uma expressão que representa uma expressão lambda que adiciona 1 ao argumento passado usando o 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

Observações

O LambdaExpression tipo representa uma expressão lambda na forma de uma árvore de expressões. O Expression<TDelegate> tipo, que deriva de LambdaExpression e captura o tipo da expressão lambda de forma mais explícita, pode também ser usado para representar uma expressão lambda. Em tempo de execução, um nó da árvore de expressões que representa uma expressão lambda é sempre do tipo Expression<TDelegate>.

O valor da NodeType propriedade de a LambdaExpression é Lambda.

Use os Lambda métodos de fábrica para criar um LambdaExpression objeto.

Propriedades

Name Description
Body

Obtém o corpo da expressão lambda.

CanReduce

Indica que o nó pode ser reduzido a um nó mais simples. Se isto devolver verdadeiro, Reduce() pode ser chamado para produzir a forma reduzida.

(Herdado de Expression)
Name

Recebe o nome da expressão lambda.

NodeType

Devolve o tipo de nó deste Expression.

NodeType

Obtém o tipo de nó deste Expression.

(Herdado de Expression)
Parameters

Obtém os parâmetros da expressão lambda.

ReturnType

Obtém o tipo de retorno da expressão lambda.

TailCall

Obtém o valor que indica se a expressão lambda será compilada com a otimização de chamadas de cauda.

Type

Obtém o tipo estático da expressão que isto Expression representa.

Type

Obtém o tipo estático da expressão que isto Expression representa.

(Herdado de Expression)

Métodos

Name Description
Accept(ExpressionVisitor)

Despacha para o método de visita específico para este tipo de nó. Por exemplo, MethodCallExpression chama o VisitMethodCall(MethodCallExpression).

(Herdado de Expression)
Compile()

Produz um delegado que representa a expressão lambda.

Compile(Boolean)

Produz um delegado interpretado ou compilado que representa a expressão lambda.

Compile(DebugInfoGenerator)

Produz um delegado que representa a expressão lambda.

CompileToMethod(MethodBuilder, DebugInfoGenerator)

Compila o lambda numa definição de método e informação de depuração personalizada.

CompileToMethod(MethodBuilder)

Compila o lambda numa definição de método.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Reduce()

Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido.

(Herdado de Expression)
ReduceAndCheck()

Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido.

(Herdado de Expression)
ReduceExtensions()

Reduz a expressão para um tipo de nó conhecido (que não é um nó de Extensão) ou simplesmente devolve a expressão se já for um tipo conhecido.

(Herdado de Expression)
ToString()

Devolve uma representação textual do Expression.

(Herdado de Expression)
VisitChildren(ExpressionVisitor)

Reduz o nó e depois chama o delegado visitante na expressão reduzida. O método lança uma exceção se o nó não for redutível.

(Herdado de Expression)

Aplica-se a