Compartilhar via


Expression.Lambda Método

Definição

Uma árvore de expressão que representa uma expressão lambda.

Sobrecargas

Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda e uma coleção enumerável de expressões de parâmetro.

Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, o nome do lambda, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Lambda(Type, Expression, ParameterExpression[])

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com uma matriz de expressões de parâmetro.

Lambda(Type, Expression, Boolean, ParameterExpression[])

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma matriz de expressões de parâmetro.

Lambda(Expression, String, IEnumerable<ParameterExpression>)

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, o nome do lambda e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Lambda(Expression, Boolean, ParameterExpression[])

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma matriz de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com uma coleção enumerável de expressões de parâmetro.

Lambda(Expression, ParameterExpression[])

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão e uma matriz de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Lambda(Expression, IEnumerable<ParameterExpression>)

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda e uma coleção enumerável de expressões de parâmetro.

Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma matriz de expressões de parâmetro.

Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

Lambda<TDelegate>(Expression, ParameterExpression[])

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com uma matriz de expressões de parâmetro.

Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com uma coleção enumerável de expressões de parâmetro.

Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, System::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

delegateType
Type

Um Type que representa a assinatura de delegado para o lambda.

body
Expression

Um Expression para definir a propriedade Body igual a ele.

name
String

O nome para o lambda. Usada para emitir informações de depuração.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda e uma coleção enumerável de expressões de parâmetro.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, System::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

delegateType
Type

Um Type que representa a assinatura de delegado para o lambda.

body
Expression

Um Expression para definir a propriedade Body igual a ele.

name
String

O nome para o lambda. Usada para emitir informações de depuração.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

delegateType
Type

Um Type que representa a assinatura de delegado para o lambda.

body
Expression

Um Expression para definir a propriedade Body igual a ele.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, o nome do lambda, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

name
String

O nome para o lambda. Usada para emitir informações de depuração.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Type, Expression, ParameterExpression[])

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com uma matriz de expressões de parâmetro.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression

Parâmetros

delegateType
Type

Um Type que representa uma assinatura de delegado para lambda.

body
Expression

Um Expression para definir a propriedade Body igual a ele.

parameters
ParameterExpression[]

Uma matriz de objetos ParameterExpression a serem usados para popular a coleção de Parameters.

Retornos

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

Exceções

delegateType ou body é null.

- ou -

Um ou mais elementos em parameters são null.

delegateType não representa um tipo de delegado.

- ou -

body.Type representa um tipo que não é atribuível ao tipo de retorno do tipo de 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 -

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

Comentários

O objeto retornado dessa 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 delegado representado por delegateType deve ser igual ao comprimento de parameters.

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

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

Aplica-se a

Lambda(Type, Expression, Boolean, ParameterExpression[])

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma matriz de expressões de parâmetro.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression

Parâmetros

delegateType
Type

Um Type que representa a assinatura de delegado para o lambda.

body
Expression

Um Expression para definir a propriedade Body igual a ele.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
ParameterExpression[]

Uma matriz que contém os objetos ParameterExpression a serem usados para popular a coleção Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Expression, String, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, o nome do lambda e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

name
String

O nome para o lambda. Usada para emitir informações de depuração.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Expression, Boolean, ParameterExpression[])

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma matriz de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
ParameterExpression[]

Uma matriz que contém os objetos ParameterExpression a serem usados para popular a coleção Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression em que o tipo delegado é conhecido no tempo de compilação, com uma coleção enumerável de expressões de parâmetro.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (Type delegateType, System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

delegateType
Type

Um Type que representa uma assinatura de delegado para lambda.

body
Expression

Um Expression para definir a propriedade Body igual a ele.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

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

Exceções

delegateType ou body é null.

- ou -

Um ou mais elementos em parameters são null.

delegateType não representa um tipo de delegado.

- ou -

body.Type representa um tipo que não é atribuível ao tipo de retorno do tipo de 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 -

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

Exemplos

O exemplo a seguir demonstra como criar uma expressão que representa uma expressão lambda que adiciona 1 ao 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
' 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 objeto retornado dessa 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 delegado representado pordelegateType deve ser igual ao comprimento de parameters.

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

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

Aplica-se a

Lambda(Expression, ParameterExpression[])

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão e uma matriz de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

parameters
ParameterExpression[]

Uma matriz de objetos ParameterExpression a serem usados para popular a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Exceções

body é null.

- ou -

Um ou mais elementos de parameters são null.

parameters contém mais de dezesseis elementos.

Comentários

O parameters parâmetro não deve ter mais de dezesseis elementos.

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

Esse método constrói um tipo de delegado apropriado de um dos System.Func delegados genéricos. Em seguida, ele passa o tipo de delegado para um dos métodos de Lambda fábrica para criar um LambdaExpression.

Aplica-se a

Lambda(Expression, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um LambdaExpression construindo primeiro um tipo delegado do corpo da expressão e uma coleção enumerável de expressões de parâmetro. Ele pode ser usado quando o tipo de delegado não é conhecido em tempo de compilação.

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um LambdaExpression que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda e uma coleção enumerável de expressões de parâmetro.

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

Parâmetros de tipo

TDelegate

O tipo de delegado.

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

name
String

O nome do lambda. Usado para gerar informações de depuração.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um Expression<TDelegate> que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma matriz de expressões de parâmetro.

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As Expression(Of TDelegate)

Parâmetros de tipo

TDelegate

O tipo de delegado.

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
ParameterExpression[]

Uma matriz que contém os objetos ParameterExpression a serem usados para popular a coleção Parameters.

Retornos

Um Expression<TDelegate> que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com o nome do lambda, um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

Parâmetros de tipo

TDelegate

O tipo de delegado.

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

name
String

O nome do lambda. Usado para gerar informações de depuração.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um Expression<TDelegate> que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a

Lambda<TDelegate>(Expression, ParameterExpression[])

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com uma matriz de expressões de parâmetro.

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, ParamArray parameters As ParameterExpression()) As Expression(Of TDelegate)

Parâmetros de tipo

TDelegate

Um tipo de delegado.

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

parameters
ParameterExpression[]

Uma matriz de objetos ParameterExpression a serem usados para popular a coleção de Parameters.

Retornos

Um Expression<TDelegate> que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Exceções

body é null.

- ou -

Um ou mais elementos em parameters são null.

TDelegate não é um tipo de delegado.

- ou -

body.Type representa um tipo que não pode ser atribuído ao tipo de retorno de TDelegate.

- ou -

parameters não contém o mesmo número de elementos que a lista de parâmetros de TDelegate.

- ou -

A propriedade Type de um elemento de parameters não pode ser atribuída do tipo de parâmetro correspondente de TDelegate.

Comentários

O número de parâmetros para o tipo TDelegate delegado deve ser igual ao número de elementos em parameters.

Os elementos de parameters devem ser referências iguais às expressões de parâmetro embody.

A Type propriedade do objeto resultante representa o tipo TDelegate. Se parameters for null, a Parameters propriedade do objeto resultante será uma coleção vazia.

Aplica-se a

Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com uma coleção enumerável de expressões de parâmetro.

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

Parâmetros de tipo

TDelegate

Um tipo de delegado.

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um Expression<TDelegate> que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Exceções

body é null.

- ou -

Um ou mais elementos em parameters são null.

TDelegate não é um tipo de delegado.

- ou -

body.Type representa um tipo que não pode ser atribuído ao tipo de retorno de TDelegate.

- ou -

parameters não contém o mesmo número de elementos que a lista de parâmetros de TDelegate.

- ou -

A propriedade Type de um elemento de parameters não pode ser atribuída do tipo de parâmetro correspondente de TDelegate.

Comentários

O número de parâmetros para o tipo TDelegate delegado deve ser igual ao número de elementos em parameters.

Os elementos de parameters devem ser referências iguais às expressões de parâmetro em body.

A Type propriedade do objeto resultante representa o tipo TDelegate. Se parameters for null, a Parameters propriedade do objeto resultante será uma coleção vazia.

Aplica-se a

Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)

Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs
Origem:
LambdaExpression.cs

Cria um Expression<TDelegate> em que o tipo delegado é conhecido no tempo de compilação, com um parâmetro que indica se a otimização da parte final da chamada será aplicada e uma coleção enumerável de expressões de parâmetro.

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate> (System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

Parâmetros de tipo

TDelegate

O tipo de delegado.

Parâmetros

body
Expression

Um Expression para definir a propriedade Body igual a ele.

tailCall
Boolean

Um Boolean que indica se a otimização de chamada final será aplicada ao compilar a expressão criada.

parameters
IEnumerable<ParameterExpression>

Um IEnumerable<T> que contém objetos ParameterExpression a serem usados para preencher a coleção de Parameters.

Retornos

Um Expression<TDelegate> que tem a propriedade NodeType igual a Lambda e as propriedades Body e Parameters definidas com os valores especificados.

Aplica-se a