通过


Expression.Lambda 方法

定义

创建表示 lambda 表达式的表达式树。

重载

名称 说明
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

创建一个 LambdaExpression 在编译时已知委托类型的位置,其中包含 lambda 的名称、一个指示是否将应用结尾调用优化的参数以及参数表达式的可枚举集合。

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

创建一个 LambdaExpression 在编译时已知的委托类型,其中包含 lambda 的名称和参数表达式的可枚举集合。

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

创建一个 LambdaExpression 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式的可枚举集合。

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

LambdaExpression通过首先从表达式正文构造委托类型、lambda 的名称、指示是否将应用结尾调用优化的参数以及参数表达式的可枚举集合来创建委托类型。 在编译时不知道委托类型时,可以使用它。

Lambda(Type, Expression, ParameterExpression[])

使用参数表达式数组创建一个 LambdaExpression 在编译时已知委托类型的位置。

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

创建一个 LambdaExpression 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式数组。

Lambda(Expression, String, IEnumerable<ParameterExpression>)

LambdaExpression通过首先从表达式正文、lambda 的名称和参数表达式的可枚举集合构造委托类型来创建委托类型。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, Boolean, ParameterExpression[])

LambdaExpression通过首先从表达式正文构造委托类型、指示是否应用结尾调用优化的参数以及参数表达式数组来创建委托类型。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

LambdaExpression通过首先从表达式正文构造委托类型、指示是否应用结尾调用优化的参数以及参数表达式的可枚举集合来创建委托类型。 在编译时不知道委托类型时,可以使用它。

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

使用可枚举的参数表达式集合创建一个 LambdaExpression 在编译时已知委托类型的位置。

Lambda(Expression, ParameterExpression[])

LambdaExpression通过首先从表达式正文和参数表达式数组构造委托类型来创建一个委托类型。 在编译时不知道委托类型时,可以使用它。

Lambda(Expression, IEnumerable<ParameterExpression>)

LambdaExpression通过首先从表达式正文构造委托类型以及参数表达式的可枚举集合来创建委托类型。 在编译时不知道委托类型时,可以使用它。

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

创建一个 Expression<TDelegate> 在编译时已知的委托类型,其中包含 lambda 的名称和参数表达式的可枚举集合。

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

创建一个 Expression<TDelegate> 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式数组。

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

创建一个 Expression<TDelegate> 在编译时已知委托类型的位置,其中包含 lambda 的名称、一个指示是否将应用结尾调用优化的参数,以及参数表达式的可枚举集合。

Lambda<TDelegate>(Expression, ParameterExpression[])

使用参数表达式数组创建一个 Expression<TDelegate> 在编译时已知委托类型的位置。

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

使用可枚举的参数表达式集合创建一个 Expression<TDelegate> 在编译时已知委托类型的位置。

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

创建一个 Expression<TDelegate> 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式的可枚举集合。

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 LambdaExpression 在编译时已知委托类型的位置,其中包含 lambda 的名称、一个指示是否将应用结尾调用优化的参数以及参数表达式的可枚举集合。

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

参数

delegateType
Type

表示 Type lambda 的委托签名。

body
Expression

要设置的属性Body等于的一个Expression

name
String

lambda 的名称。 用于发出调试信息。

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 LambdaExpression 在编译时已知的委托类型,其中包含 lambda 的名称和参数表达式的可枚举集合。

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

参数

delegateType
Type

表示 Type lambda 的委托签名。

body
Expression

要设置的属性Body等于的一个Expression

name
String

lambda 的名称。 用于发出调试信息。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 LambdaExpression 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式的可枚举集合。

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

参数

delegateType
Type

表示 Type lambda 的委托签名。

body
Expression

要设置的属性Body等于的一个Expression

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

LambdaExpression通过首先从表达式正文构造委托类型、lambda 的名称、指示是否将应用结尾调用优化的参数以及参数表达式的可枚举集合来创建委托类型。 在编译时不知道委托类型时,可以使用它。

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
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

参数

body
Expression

要设置的属性Body等于的一个Expression

name
String

lambda 的名称。 用于发出调试信息。

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

属性

适用于

Lambda(Type, Expression, ParameterExpression[])

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

使用参数表达式数组创建一个 LambdaExpression 在编译时已知委托类型的位置。

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

参数

delegateType
Type

Type 个表示 lambda 的委托签名。

body
Expression

要设置的属性Body等于的一个Expression

parameters
ParameterExpression[]

用于填充Parameters集合的对象数组ParameterExpression

返回

一个对象,表示一个 lambda 表达式,该表达式的属性NodeType等于LambdaBodyParameters属性设置为指定值。

例外

delegateTypebodynull.

-或-

中的parameters一个或多个元素。null

delegateType 不表示委托类型。

-或-

body.类型表示一个类型,该类型不能分配给委托类型的返回类型。delegateType

-或-

parameters 不包含与委托 delegateType类型所表示的参数列表相同的元素数。

-或-

Type元素的属性parameters不能从委托类型所表示delegateType的相应参数类型的类型中赋值。

注解

从此函数返回的对象的类型 Expression<TDelegate>。 该 LambdaExpression 类型用于表示返回的对象,因为 lambda 表达式的具体类型在编译时未知。

表示 delegateType 的委托类型的参数数必须等于长度 parameters

必须引用的 parameters 元素必须与参数表达式相 body等。

Type生成的对象的属性等于 delegateTypenull如果是parametersParameters则生成的对象的属性为空集合。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 LambdaExpression 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式数组。

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

参数

delegateType
Type

表示 Type lambda 的委托签名。

body
Expression

要设置的属性Body等于的一个Expression

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
ParameterExpression[]

一个数组,其中包含 ParameterExpression 用于填充 Parameters 集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

适用于

Lambda(Expression, String, IEnumerable<ParameterExpression>)

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

LambdaExpression通过首先从表达式正文、lambda 的名称和参数表达式的可枚举集合构造委托类型来创建委托类型。 在编译时不知道委托类型时,可以使用它。

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
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

参数

body
Expression

要设置的属性Body等于的一个Expression

name
String

lambda 的名称。 用于发出调试信息。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

属性

适用于

Lambda(Expression, Boolean, ParameterExpression[])

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

LambdaExpression通过首先从表达式正文构造委托类型、指示是否应用结尾调用优化的参数以及参数表达式数组来创建委托类型。 在编译时不知道委托类型时,可以使用它。

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
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

参数

body
Expression

要设置的属性Body等于的一个Expression

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
ParameterExpression[]

一个数组,其中包含 ParameterExpression 用于填充 Parameters 集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

属性

适用于

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

LambdaExpression通过首先从表达式正文构造委托类型、指示是否应用结尾调用优化的参数以及参数表达式的可枚举集合来创建委托类型。 在编译时不知道委托类型时,可以使用它。

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
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

参数

body
Expression

要设置的属性Body等于的一个Expression

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

属性

适用于

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

使用可枚举的参数表达式集合创建一个 LambdaExpression 在编译时已知委托类型的位置。

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

参数

delegateType
Type

Type 个表示 lambda 的委托签名。

body
Expression

要设置的属性Body等于的一个Expression

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个对象,表示一个 lambda 表达式,该表达式的属性NodeType等于LambdaBodyParameters属性设置为指定值。

例外

delegateTypebodynull.

-或-

中的parameters一个或多个元素。null

delegateType 不表示委托类型。

-或-

body.类型表示一个类型,该类型不能分配给委托类型的返回类型。delegateType

-或-

parameters 不包含与委托 delegateType类型所表示的参数列表相同的元素数。

-或-

Type元素的属性parameters不能从委托类型所表示delegateType的相应参数类型的类型中赋值。

示例

以下示例演示如何创建一个表达式,该表达式表示向传递的参数添加 1 的 lambda 表达式。

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

注解

从此函数返回的对象的类型 Expression<TDelegate>。 该 LambdaExpression 类型用于表示返回的对象,因为 lambda 表达式的具体类型在编译时未知。

表示delegateType 的委托类型的参数数必须等于长度 parameters

必须引用的 parameters 元素必须与参数表达式相 body等。

Type生成的对象的属性等于 delegateTypenull如果是parametersParameters则生成的对象的属性为空集合。

适用于

Lambda(Expression, ParameterExpression[])

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

LambdaExpression通过首先从表达式正文和参数表达式数组构造委托类型来创建一个委托类型。 在编译时不知道委托类型时,可以使用它。

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
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

参数

body
Expression

要设置的属性Body等于的一个Expression

parameters
ParameterExpression[]

用于填充Parameters集合的对象数组ParameterExpression

返回

一个LambdaExpression属性NodeType等于LambdaBodyParameters属性设置为指定值。

属性

例外

bodynull

-或-

parameters一个或多个元素。null

parameters 包含 16 个以上的元素。

注解

参数 parameters 不能超过 16 个元素。

必须引用的 parameters 元素必须与参数表达式相 body等。

此方法从其中 System.Func 一个泛型委托构造适当的委托类型。 然后,它将委托类型传递给工厂方法之Lambda一以创建 。LambdaExpression

适用于

Lambda(Expression, IEnumerable<ParameterExpression>)

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

LambdaExpression通过首先从表达式正文构造委托类型以及参数表达式的可枚举集合来创建委托类型。 在编译时不知道委托类型时,可以使用它。

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
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

参数

body
Expression

要设置的属性Body等于的一个Expression

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个LambdaExpression属性NodeType等于 Lambda,并且BodyParameters属性设置为指定值。

属性

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 Expression<TDelegate> 在编译时已知的委托类型,其中包含 lambda 的名称和参数表达式的可枚举集合。

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)

类型参数

TDelegate

委托类型。

参数

body
Expression

要设置的属性Body等于的一个Expression

name
String

lambda 的名称。 用于生成调试信息。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个Expression<TDelegate>属性NodeType等于LambdaBodyParameters属性设置为指定值。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 Expression<TDelegate> 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式数组。

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)

类型参数

TDelegate

委托类型。

参数

body
Expression

要设置的属性Body等于的一个Expression

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
ParameterExpression[]

一个数组,其中包含 ParameterExpression 用于填充 Parameters 集合的对象。

返回

一个Expression<TDelegate>属性NodeType等于LambdaBodyParameters属性设置为指定值。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 Expression<TDelegate> 在编译时已知委托类型的位置,其中包含 lambda 的名称、一个指示是否将应用结尾调用优化的参数,以及参数表达式的可枚举集合。

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)

类型参数

TDelegate

委托类型。

参数

body
Expression

要设置的属性Body等于的一个Expression

name
String

lambda 的名称。 用于生成调试信息。

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个Expression<TDelegate>属性NodeType等于LambdaBodyParameters属性设置为指定值。

适用于

Lambda<TDelegate>(Expression, ParameterExpression[])

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

使用参数表达式数组创建一个 Expression<TDelegate> 在编译时已知委托类型的位置。

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)

类型参数

TDelegate

委托类型。

参数

body
Expression

要设置的属性Body等于的一个Expression

parameters
ParameterExpression[]

用于填充Parameters集合的对象数组ParameterExpression

返回

一个Expression<TDelegate>属性NodeType等于LambdaBodyParameters属性设置为指定值。

例外

bodynull

-或-

中的parameters一个或多个元素。null

TDelegate 不是委托类型。

-或-

body.类型表示不可分配给返回类型的类型 TDelegate

-或-

parameters 不包含与参数 TDelegate列表相同的元素数。

-或-

Type元素的属性parameters不可从相应参数类型的TDelegate类型赋值。

注解

委托类型的 TDelegate 参数数必须与中的 parameters元素数相等。

必须引用的 parameters 元素等于其中body的参数表达式。

Type生成的对象的属性表示类型 TDelegatenull如果是parametersParameters则生成的对象的属性为空集合。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

使用可枚举的参数表达式集合创建一个 Expression<TDelegate> 在编译时已知委托类型的位置。

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)

类型参数

TDelegate

委托类型。

参数

body
Expression

要设置的属性Body等于的一个Expression

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个Expression<TDelegate>属性NodeType等于LambdaBodyParameters属性设置为指定值。

例外

bodynull

-或-

中的parameters一个或多个元素。null

TDelegate 不是委托类型。

-或-

body.类型表示不可分配给返回类型的类型 TDelegate

-或-

parameters 不包含与参数 TDelegate列表相同的元素数。

-或-

Type元素的属性parameters不可从相应参数类型的TDelegate类型赋值。

注解

委托类型的 TDelegate 参数数必须与中的 parameters元素数相等。

必须引用的 parameters 元素必须与参数表达式相 body等。

Type生成的对象的属性表示类型 TDelegatenull如果是parametersParameters则生成的对象的属性为空集合。

适用于

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

Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs
Source:
LambdaExpression.cs

创建一个 Expression<TDelegate> 在编译时已知委托类型的位置,该参数指示是否将应用结尾调用优化,以及参数表达式的可枚举集合。

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)

类型参数

TDelegate

委托类型。

参数

body
Expression

要设置的属性Body等于的一个Expression

tailCall
Boolean

指示 Boolean 编译创建的表达式时是否将应用结尾调用优化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>包含ParameterExpression用于填充Parameters集合的对象。

返回

一个Expression<TDelegate>属性NodeType等于LambdaBodyParameters属性设置为指定值。

适用于