Compartilhar via


LambdaExpression Classe

Definição

Descreve uma expressão lambda. Isso captura um bloco de código semelhante a um corpo do 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 a seguir 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

Comentários

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

O valor da NodeType propriedade de a LambdaExpression é Lambda.

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

Propriedades

Nome Description
Body

Obtém o corpo da expressão lambda.

CanReduce

Indica que o nó pode ser reduzido a um nó mais simples. Se isso retornar true, Reduce() poderá ser chamado para produzir o formulário reduzido.

(Herdado de Expression)
Name

Obtém o nome da expressão lambda.

NodeType

Retorna 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 chamada final.

Type

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

Type

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

(Herdado de Expression)

Métodos

Nome Description
Accept(ExpressionVisitor)

Envia para o método de visita específico para esse 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 em uma definição de método e informações de depuração personalizadas.

CompileToMethod(MethodBuilder)

Compila o lambda em uma definição de método.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
Reduce()

Reduz esse nó a uma expressão mais simples. Se CanReduce retornar true, isso deverá retornar uma expressão válida. Esse método pode retornar outro nó que deve ser reduzido.

(Herdado de Expression)
ReduceAndCheck()

Reduz esse nó a uma expressão mais simples. Se CanReduce retornar true, isso deverá retornar uma expressão válida. Esse método pode retornar outro nó que deve ser reduzido.

(Herdado de Expression)
ReduceExtensions()

Reduz a expressão a um tipo de nó conhecido (que não é um nó de extensão) ou apenas retorna a expressão se já for um tipo conhecido.

(Herdado de Expression)
ToString()

Retorna uma representação textual do Expression.

(Herdado de Expression)
VisitChildren(ExpressionVisitor)

Reduz o nó e, em seguida, chama o delegado visitante na expressão reduzida. O método gerará uma exceção se o nó não for reduível.

(Herdado de Expression)

Aplica-se a