Expression.Lambda 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立一棵表示 lambda 表達式的表達樹。
多載
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)
建立 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
參數
- body
- Expression
Expression A 將屬性Body設為 。
- name
- String
lambda 的名稱。 用於輸出除錯資訊。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
適用於
Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)
建立一個 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
參數
- body
- Expression
Expression A 將屬性Body設為 。
- name
- String
lambda 的名稱。 用於輸出除錯資訊。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
適用於
Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)
建立 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
參數
- body
- Expression
Expression A 將屬性Body設為 。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
適用於
Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)
首先從表達式主體、lambda名稱、指示是否應用尾部呼叫優化的參數,以及可枚舉的參數表達式集合中構造代理型態來建立 a LambdaExpression 。 當編譯時代理類型尚未確定時,可以使用此方法。
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
Expression A 將屬性Body設為 。
- name
- String
lambda 的名稱。 用於輸出除錯資訊。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
- 屬性
適用於
Lambda(Type, Expression, ParameterExpression[])
建立 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
參數
- body
- Expression
Expression A 將屬性Body設為 。
- parameters
- ParameterExpression[]
一個用來填充Parameters集合的物件陣列ParameterExpression。
傳回
一個代表 lambda 運算式的物件,其性質等NodeType於 ,LambdaBody且 和 Parameters 屬性設定為指定值。
例外狀況
delegateType 不代表代理類型。
-或-
body.類型代表一種無法指派到代理 delegateType類型中回傳類型的類型。
-或-
parameters 所包含的元素數量與代表 delegateType型別的參數列表相同。
-或-
Type元素parameters的屬性無法從代表delegateType型別的對應參數類型中指派。
備註
從此函式回傳的物件型別為 Expression<TDelegate>。 LambdaExpression該型別用來表示回傳的物件,因為 lambda 運算式的具體型別在編譯時尚未確定。
代表 delegateType 型態的參數數必須等於 的 parameters長度。
的 parameters 元素必須是參照,與 中的 body參數表達式相等。
Type所得物件的性質等delegateType於 。 若 parameters 是 null,則 Parameters 所得物件的性質為空集合。
適用於
Lambda(Type, Expression, Boolean, ParameterExpression[])
建立 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
參數
- body
- Expression
Expression A 將屬性Body設為 。
- parameters
- ParameterExpression[]
一個包含 ParameterExpression 用來填充 Parameters 集合的物件的陣列。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
適用於
Lambda(Expression, String, IEnumerable<ParameterExpression>)
首先從表達式主體、lambda 名稱及可枚舉的參數表達式集合構建代理型態來建立 。LambdaExpression 當編譯時代理類型尚未確定時,可以使用此方法。
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
Expression A 將屬性Body設為 。
- name
- String
lambda 的名稱。 用於輸出除錯資訊。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
- 屬性
適用於
Lambda(Expression, Boolean, ParameterExpression[])
首先從表達式主體構造代理型態、指示是否套用尾呼叫優化的參數,以及參數表達式陣列來建立 。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
Expression A 將屬性Body設為 。
- parameters
- ParameterExpression[]
一個包含 ParameterExpression 用來填充 Parameters 集合的物件的陣列。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
- 屬性
適用於
Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)
首先從表達式主體構造代理型態、指示是否應用尾部調用優化的參數,以及可枚舉的參數表達式集合來建立 。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
Expression A 將屬性Body設為 。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
- 屬性
適用於
Lambda(Type, Expression, IEnumerable<ParameterExpression>)
建立 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
參數
- body
- Expression
Expression A 將屬性Body設為 。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
一個代表 lambda 運算式的物件,其性質等NodeType於 ,LambdaBody且 和 Parameters 屬性設定為指定值。
例外狀況
delegateType 不代表代理類型。
-或-
body.類型代表一種無法指派到代理 delegateType類型中回傳類型的類型。
-或-
parameters 所包含的元素數量與代表 delegateType型別的參數列表相同。
-或-
Type元素parameters的屬性無法從代表delegateType型別的對應參數類型中指派。
範例
以下範例示範如何建立一個表示 lambda 表達式,該表達式在通過參數後加上 1。
// 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所得物件的性質等delegateType於 。 若 parameters 是 null,則 Parameters 所得物件的性質為空集合。
適用於
Lambda(Expression, ParameterExpression[])
首先從表達式主體構造代理型態,並建立參數表達式陣列來建立 。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
Expression A 將屬性Body設為 。
- parameters
- ParameterExpression[]
一個用來填充Parameters集合的物件陣列ParameterExpression。
傳回
LambdaExpression一個屬性等NodeType於 ,Lambda且 Body 和 Parameters 屬性設定為指定值的 a。
- 屬性
例外狀況
parameters 包含超過十六種元素。
備註
參數 parameters 的元素不得超過十六個。
的 parameters 元素必須是參照,與 中的 body參數表達式相等。
此方法會從其中一個 System.Func 通用代理中構建適當的代理類型。 接著它將代理型態傳給工廠 Lambda 方法之一以建立 LambdaExpression。
適用於
Lambda(Expression, IEnumerable<ParameterExpression>)
首先從表達式主體構建代理型態,並建立可枚舉的參數表達式集合來建立 。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
Expression A 將屬性Body設為 。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
LambdaExpression一個性質等NodeType於 Lambda,且 Body 和 Parameters 屬性設定為指定值的 A。
- 屬性
適用於
Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)
建立一個 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
Expression A 將屬性Body設為 。
- name
- String
lambda 的名字。 用於產生除錯資訊。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
一個 Expression<TDelegate> 屬性等 NodeType 於 , Lambda 且 BodyParameters 和屬性設定為指定的值。
適用於
Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])
建立 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
Expression A 將屬性Body設為 。
- parameters
- ParameterExpression[]
一個包含 ParameterExpression 用來填充 Parameters 集合的物件的陣列。
傳回
一個 Expression<TDelegate> 屬性等 NodeType 於 , Lambda 且 BodyParameters 和屬性設定為指定的值。
適用於
Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)
建立一個 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
Expression A 將屬性Body設為 。
- name
- String
lambda 的名字。 用於產生除錯資訊。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
一個 Expression<TDelegate> 屬性等 NodeType 於 , Lambda 且 BodyParameters 和屬性設定為指定的值。
適用於
Lambda<TDelegate>(Expression, ParameterExpression[])
建立 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
Expression A 將屬性Body設為 。
- parameters
- ParameterExpression[]
一個用來填充Parameters集合的物件陣列ParameterExpression。
傳回
一個 Expression<TDelegate> 屬性等 NodeType 於 , Lambda 且 BodyParameters 和屬性設定為指定的值。
例外狀況
TDelegate 不是代表型。
-或-
body.類型代表一種無法指派到回 TDelegate傳類型中的類型。
-或-
parameters 所包含的元素數量與 的 TDelegate參數列表相同。
-或-
Type元素parameters的性質無法從對應參數型TDelegate別的型別中指派。
備註
代理型別 TDelegate 的參數數必須等於 中的 parameters元素數。
的 parameters 元素必須是參照,等於 中的body參數表達式。
Type所得物件的屬性代表類型 TDelegate。 若 parameters 是 null,則 Parameters 所得物件的性質為空集合。
適用於
Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)
建立 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
Expression A 將屬性Body設為 。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
一個 Expression<TDelegate> 屬性等 NodeType 於 , Lambda 且 BodyParameters 和屬性設定為指定的值。
例外狀況
TDelegate 不是代表型。
-或-
body.類型代表一種無法指派到回 TDelegate傳類型中的類型。
-或-
parameters 所包含的元素數量與 的 TDelegate參數列表相同。
-或-
Type元素parameters的性質無法從對應參數型TDelegate別的型別中指派。
備註
代理型別 TDelegate 的參數數必須等於 中的 parameters元素數。
的 parameters 元素必須是參照,與 中的 body參數表達式相等。
Type所得物件的屬性代表類型 TDelegate。 若 parameters 是 null,則 Parameters 所得物件的性質為空集合。
適用於
Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)
建立 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
Expression A 將屬性Body設為 。
- parameters
- IEnumerable<ParameterExpression>
一個 IEnumerable<T> 包含 ParameterExpression 用來填充 Parameters 集合的物件的 。
傳回
一個 Expression<TDelegate> 屬性等 NodeType 於 , Lambda 且 BodyParameters 和屬性設定為指定的值。