LambdaExpression Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |