Lambda Método (Type, Expression, IEnumerable(ParameterExpression))
Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método Expression.Lambda (Type, Expression, IEnumerable<ParameterExpression>)

 

Cria um LambdaExpression primeiro construir um tipo delegado.Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (em System.Core.dll)

public static LambdaExpression Lambda(
	Type delegateType,
	Expression body,
	IEnumerable<ParameterExpression> parameters
)

Parâmetros

delegateType

Um Type que representa uma assinatura de delegado para lambda.

body

Um Expression para definir o Body igual à propriedade.

parameters

Um IEnumerable<T> que contém ParameterExpression objetos para usar para popular o Parameters coleção.

Valor de retorno

Type: System.Linq.Expressions.LambdaExpression

Um objeto que representa uma expressão lambda que tem o NodeType igual a propriedade Lambda e o Body e Parameters as propriedades definidas para os valores especificados.

Exception Condition
ArgumentNullException

delegateType ou body é null.

-ou-

Um ou mais elementos no parameters são null.

ArgumentException

delegateType não representa um tipo delegado.

-ou-

body. Tipo representa um tipo que não é atribuível ao tipo de retorno do tipo delegado representado por delegateType.

-ou-

parameters não contém o mesmo número de elementos da lista de parâmetros para o tipo de delegado representado por delegateType.

-ou-

O Type propriedade de um elemento de parameters não é atribuível do tipo de parâmetro correspondente do tipo delegado representado por delegateType.

O objeto retornado por essa função é do tipo Expression<TDelegate>.O LambdaExpression tipo é usado para representar o objeto retornado porque o tipo concreto da expressão lambda não é conhecido em tempo de compilação.

O número de parâmetros para o tipo de delegado representado por delegateType deve ser igual ao comprimento da parameters.

Os elementos de parameters deve ser igual às expressões de parâmetro na referência body.

O Type propriedade do objeto resultante é igual a delegateType.Se parameters for null, o Parameters propriedade do objeto resultante é uma coleção vazia.

O exemplo a seguir demonstra como criar uma expressão que representa uma expressão lambda que adiciona 1 para o argumento passado.

// 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

Universal Windows Platform
Disponível desde 4.5
.NET Framework
Disponível desde 3.5
Portable Class Library
Com suporte em: portable .NET platforms
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1
Retornar ao topo
Mostrar:
© 2016 Microsoft