Expression.Lambda Método

Definición

Crea un árbol de expresión que representa una expresión lambda.

Sobrecargas

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda y una colección enumerable de expresiones de parámetros.

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, el nombre de la expresión lambda, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

Lambda(Type, Expression, ParameterExpression[])

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con una colección enumerable de expresiones de parámetros.

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una matriz de expresiones de parámetros.

Lambda(Expression, String, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, el nombre de la expresión lambda y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

Lambda(Expression, Boolean, ParameterExpression[])

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, un parámetro que indica si se aplicará la optimización de la llamada de cola y una matriz de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con una colección enumerable de expresiones de parámetros.

Lambda(Expression, ParameterExpression[])

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión y una matriz de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

Lambda(Expression, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda y una colección enumerable de expresiones de parámetros.

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una matriz de expresiones de parámetros.

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

Lambda<TDelegate>(Expression, ParameterExpression[])

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con una matriz de expresiones de parámetros.

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con una colección enumerable de expresiones de parámetros.

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Type que representa la firma de delegado para lambda.

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

name
String

Nombre de la expresión lambda. Se usa para emitir información de depuración.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda y una colección enumerable de expresiones de parámetros.

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

Type que representa la firma de delegado para lambda.

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

name
String

Nombre de la expresión lambda. Se usa para emitir información de depuración.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Type que representa la firma de delegado para lambda.

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

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

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, el nombre de la expresión lambda, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Objeto Expression en el que se va a establecer la propiedad Body.

name
String

Nombre de la expresión lambda. Se usa para emitir información de depuración.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

Lambda(Type, Expression, ParameterExpression[])

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con una colección enumerable de expresiones de parámetros.

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

Objeto Type que representa una signatura de delegado para la expresión lambda.

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

parameters
ParameterExpression[]

Matriz de objetos ParameterExpression que se va a usar para rellenar la colección de Parameters.

Devoluciones

Objeto que representa una expresión lambda cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Excepciones

delegateType o body es null.

o bien

Uno o más elementos de parameters son null.

delegateType no representa un tipo de delegado.

o bien

body.Type representa un tipo que no se puede asignar al tipo de valor devuelto del tipo de delegado representado por delegateType.

o bien

parameters no contiene el mismo número de elementos que la lista de parámetros para el tipo de delegado representado por delegateType.

o bien

La propiedad Type de un elemento de parameters no se puede asignar desde el tipo del correspondiente tipo de parámetro del tipo de delegado representado por delegateType.

Comentarios

El objeto que se devuelve de esta función es de tipo Expression<TDelegate>. El LambdaExpression tipo se usa para representar el objeto devuelto porque el tipo concreto de la expresión lambda no se conoce en tiempo de compilación.

El número de parámetros del tipo delegado representado por delegateType debe ser igual a la longitud de parameters.

Los elementos de parameters deben ser iguales a las expresiones de parámetro en body.

La Type propiedad del objeto resultante es igual a delegateType. Si parameters es null, la Parameters propiedad del objeto resultante es una colección vacía.

Se aplica a

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

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una matriz de expresiones de parámetros.

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

Type que representa la firma de delegado para lambda.

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
ParameterExpression[]

Matriz que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

Lambda(Expression, String, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, el nombre de la expresión lambda y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Objeto Expression en el que se va a establecer la propiedad Body.

name
String

Nombre de la expresión lambda. Se usa para emitir información de depuración.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

Lambda(Expression, Boolean, ParameterExpression[])

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, un parámetro que indica si se aplicará la optimización de la llamada de cola y una matriz de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Objeto Expression en el que se va a establecer la propiedad Body.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
ParameterExpression[]

Matriz que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Objeto Expression en el que se va a establecer la propiedad Body.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression en la que el tipo de delegado se conoce en el momento de la compilación, con una colección enumerable de expresiones de parámetros.

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

Objeto Type que representa una signatura de delegado para la expresión lambda.

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

Objeto que representa una expresión lambda cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Excepciones

delegateType o body es null.

o bien

Uno o más elementos de parameters son null.

delegateType no representa un tipo de delegado.

o bien

body.Type representa un tipo que no se puede asignar al tipo de valor devuelto del tipo de delegado representado por delegateType.

o bien

parameters no contiene el mismo número de elementos que la lista de parámetros para el tipo de delegado representado por delegateType.

o bien

La propiedad Type de un elemento de parameters no se puede asignar desde el tipo del correspondiente tipo de parámetro del tipo de delegado representado por delegateType.

Ejemplos

En el ejemplo siguiente se muestra cómo crear una expresión que representa una expresión lambda que agrega 1 al argumento pasado.

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

Comentarios

El objeto que se devuelve de esta función es de tipo Expression<TDelegate>. El LambdaExpression tipo se usa para representar el objeto devuelto porque el tipo concreto de la expresión lambda no se conoce en tiempo de compilación.

El número de parámetros para el tipo delegado representado pordelegateType debe ser igual a la longitud de parameters.

Los elementos de parameters deben ser iguales a las expresiones de parámetro en body.

La Type propiedad del objeto resultante es igual a delegateType. Si parameters es null, la Parameters propiedad del objeto resultante es una colección vacía.

Se aplica a

Lambda(Expression, ParameterExpression[])

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión y una matriz de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Objeto Expression en el que se va a establecer la propiedad Body.

parameters
ParameterExpression[]

Matriz de objetos ParameterExpression que se va a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Excepciones

body es null.

o bien

Uno o más elementos de parameters son null.

parameters contiene más de dieciséis elementos.

Comentarios

El parameters parámetro no debe tener más de dieciséis elementos.

Los elementos de parameters deben ser iguales a las expresiones de parámetro en body.

Este método construye un tipo delegado adecuado a partir de uno de los System.Func delegados genéricos. A continuación, pasa el tipo de delegado a uno de los Lambda métodos de fábrica para crear un LambdaExpression.

Se aplica a

Lambda(Expression, IEnumerable<ParameterExpression>)

Crea una clase LambdaExpression construyendo primero un tipo de delegado a partir del cuerpo de la expresión y una colección enumerable de expresiones de parámetros. Se puede usar cuando no se conoce el tipo de delegado en tiempo de compilación.

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

Objeto Expression en el que se va a establecer la propiedad Body.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

LambdaExpression cuya propiedad NodeType es igual a Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda y una colección enumerable de expresiones de parámetros.

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

Tipo de delegado.

Parámetros

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

name
String

Nombre de la expresión lambda. Se usa para emitir información de depuración.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

Expression<TDelegate> cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una matriz de expresiones de parámetros.

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

Tipo de delegado.

Parámetros

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
ParameterExpression[]

Matriz que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

Expression<TDelegate> cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con el nombre de la expresión lambda, un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Tipo de delegado.

Parámetros

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

name
String

Nombre de la expresión lambda. Se usa para emitir información de depuración.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

Expression<TDelegate> cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a

Lambda<TDelegate>(Expression, ParameterExpression[])

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con una matriz de expresiones de parámetros.

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

Tipo de delegado.

Parámetros

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

parameters
ParameterExpression[]

Matriz de objetos ParameterExpression que se va a usar para rellenar la colección de Parameters.

Devoluciones

Expression<TDelegate> cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Excepciones

body es null.

o bien

Uno o más elementos de parameters son null.

TDelegate no es un tipo de delegado.

o bien

body.Type representa un tipo que no se puede asignar al tipo de valor devuelto de TDelegate.

o bien

parameters no contiene el mismo número de elementos que la lista de parámetros para TDelegate.

o bien

La propiedad Type de un elemento de parameters no se puede asignar desde el tipo del correspondiente tipo de parámetro de TDelegate.

Comentarios

El número de parámetros para el tipo TDelegate delegado debe ser igual al número de elementos de parameters.

Los elementos de parameters deben ser iguales a las expresiones de parámetro debody .

La Type propiedad del objeto resultante representa el tipo TDelegate. Si parameters es null, la Parameters propiedad del objeto resultante es una colección vacía.

Se aplica a

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con una colección enumerable de expresiones de parámetros.

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

Tipo de delegado.

Parámetros

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

Expression<TDelegate> cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Excepciones

body es null.

o bien

Uno o más elementos de parameters son null.

TDelegate no es un tipo de delegado.

o bien

body.Type representa un tipo que no se puede asignar al tipo de valor devuelto de TDelegate.

o bien

parameters no contiene el mismo número de elementos que la lista de parámetros para TDelegate.

o bien

La propiedad Type de un elemento de parameters no se puede asignar desde el tipo del correspondiente tipo de parámetro de TDelegate.

Comentarios

El número de parámetros para el tipo TDelegate delegado debe ser igual al número de elementos de parameters.

Los elementos de parameters deben ser iguales a las expresiones de parámetro en body.

La Type propiedad del objeto resultante representa el tipo TDelegate. Si parameters es null, la Parameters propiedad del objeto resultante es una colección vacía.

Se aplica a

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

Crea una clase Expression<TDelegate> en la que el tipo de delegado se conoce en el momento de la compilación, con un parámetro que indica si se aplicará la optimización de la llamada de cola y una colección enumerable de expresiones de parámetros.

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

Tipo de delegado.

Parámetros

body
Expression

Objeto Expression en el que se va a establecer la propiedad Body.

tailCall
Boolean

Boolean que indica si se aplicará la optimización de llamada de cola al compilar la expresión creada.

parameters
IEnumerable<ParameterExpression>

IEnumerable<T> que contiene los objetos ParameterExpression que se van a usar para rellenar la colección de Parameters.

Devoluciones

Expression<TDelegate> cuya propiedad NodeType es Lambda y cuyas propiedades Body y Parameters se establecen en los valores especificados.

Se aplica a