Expression.Lambda 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立表示 Lambda 運算式的運算式樹狀架構。
多載
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)
使用 lambda 的名稱、指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 LambdaExpression,其中委派型別在編譯時間為已知。
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 屬性設定為與之相等的 Body。
- name
- String
Lambda 的名稱。 用於發出偵錯資訊。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)
使用 lambda 的名稱與參數運算式的可列舉集合建立 LambdaExpression,其中委派型別在編譯時間為已知。
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 屬性設定為與之相等的 Body。
- name
- String
Lambda 的名稱。 用於發出偵錯資訊。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)
使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 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 屬性設定為與之相等的 Body。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)
先從運算式主體建構委派型別、lambda 的名稱、指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合,以建立 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);
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
參數
- body
- Expression
要將 Expression 屬性設定為與之相等的 Body。
- name
- String
Lambda 的名稱。 用於發出偵錯資訊。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
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 屬性設定為與之相等的 Body。
- parameters
- ParameterExpression[]
用以填入 ParameterExpression 集合之 Parameters 物件的陣列。
傳回
表示 Lambda 運算式的物件,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
例外狀況
delegateType
不表示委派類型。
-或-
body
.Type 表示的類型無法指派給 delegateType
所表示之委派類型的傳回類型。
-或-
parameters
包含的項目數與 delegateType
所表示之委派類型的參數清單不同。
-或-
parameters
之項目的 Type 屬性無法從由 delegateType
所表示之委派類型的對應參數類型指派。
備註
從函式傳回的物件型態為 Expression<TDelegate>。 型 LambdaExpression 別是用來表示傳回的對象,因為 Lambda 表達式的具體類型在編譯時期未知。
所 delegateType
表示委派型別的參數數目必須等於的 parameters
長度。
的 parameters
元素必須等於 中的 body
參數表達式。
Type所產生物件的屬性等於 delegateType
。 如果 parameters
為 null
, Parameters 則結果對象的 屬性是空的集合。
適用於
Lambda(Type, Expression, Boolean, ParameterExpression[])
使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的陣列建立 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 屬性設定為與之相等的 Body。
- parameters
- ParameterExpression[]
陣列,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
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);
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
參數
- body
- Expression
要將 Expression 屬性設定為與之相等的 Body。
- name
- String
Lambda 的名稱。 用於發出偵錯資訊。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda(Expression, Boolean, ParameterExpression[])
先從運算式主體建構委派型別、指出是否套用 tail 呼叫最佳化的參數與參數運算式的陣列,以建立 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);
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
參數
- body
- Expression
要將 Expression 屬性設定為與之相等的 Body。
- parameters
- ParameterExpression[]
陣列,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)
先從運算式主體建構委派型別、指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合,以建立 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);
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
參數
- body
- Expression
要將 Expression 屬性設定為與之相等的 Body。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
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 屬性設定為與之相等的 Body。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
表示 Lambda 運算式的物件,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
例外狀況
delegateType
不表示委派類型。
-或-
body
.Type 表示的類型無法指派給 delegateType
所表示之委派類型的傳回類型。
-或-
parameters
包含的項目數與 delegateType
所表示之委派類型的參數清單不同。
-或-
parameters
之項目的 Type 屬性無法從由 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所產生物件的屬性等於 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);
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
參數
- body
- Expression
要將 Expression 屬性設定為與之相等的 Body。
- parameters
- ParameterExpression[]
用以填入 ParameterExpression 集合之 Parameters 物件的陣列。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
例外狀況
parameters
包含十六個以上的項目。
備註
參數 parameters
不能有十六個以上的元素。
的 parameters
元素必須等於 中的 body
參數表達式。
這個方法會從其中 System.Func
一個泛型委派建構適當的委派類型。 然後,它會將委派類型傳遞至其中 Lambda 一個 Factory 方法,以建立 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);
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
參數
- body
- Expression
要將 Expression 屬性設定為與之相等的 Body。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
LambdaExpression,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)
使用 lambda 的名稱與參數運算式的可列舉集合建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。
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 屬性設定為與之相等的 Body。
- name
- String
Lambda 的名稱。 用於產生偵錯資訊。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda<TDelegate>(Expression, Boolean, ParameterExpression[])
使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的陣列建立 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 屬性設定為與之相等的 Body。
- parameters
- ParameterExpression[]
陣列,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)
使用 lambda 的名稱、指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。
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 屬性設定為與之相等的 Body。
- name
- String
Lambda 的名稱。 用於產生偵錯資訊。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
適用於
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 屬性設定為與之相等的 Body。
- parameters
- ParameterExpression[]
用以填入 ParameterExpression 集合之 Parameters 物件的陣列。
傳回
Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
例外狀況
TDelegate
不是委派類型。
-或-
body
.Type 所表示的類型無法指派給 TDelegate
的傳回類型。
-或-
parameters
包含的項目數與 TDelegate
的參數清單不同。
-或-
parameters
之項目的 Type 屬性無法從 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 屬性設定為與之相等的 Body。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。
例外狀況
TDelegate
不是委派類型。
-或-
body
.Type 所表示的類型無法指派給 TDelegate
的傳回類型。
-或-
parameters
包含的項目數與 TDelegate
的參數清單不同。
-或-
parameters
之項目的 Type 屬性無法從 TDelegate
之對應參數類型的類型指派。
備註
委派型 TDelegate
別的參數數目必須等於 中的 parameters
項目數目。
parameters
的項目必須等於 中的body
參數表達式。
Type結果物件的 屬性代表 型別 TDelegate
。 如果 parameters
為 null
, Parameters 則產生的物件屬性是空的集合。
適用於
Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)
使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 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 屬性設定為與之相等的 Body。
- parameters
- IEnumerable<ParameterExpression>
IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。
傳回
Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 Body 和 Parameters 屬性設定為指定的值。