Expression.Lambda 方法

定義

建立表示 Lambda 運算式的運算式樹狀架構。

多載

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

使用 lambda 的名稱、指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 LambdaExpression,其中委派型別在編譯時間為已知。

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

使用 lambda 的名稱與參數運算式的可列舉集合建立 LambdaExpression,其中委派型別在編譯時間為已知。

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

使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 LambdaExpression,其中委派型別在編譯時間為已知。

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

先從運算式主體建構委派型別、lambda 的名稱、指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合,以建立 LambdaExpression。 它可用於在編譯階段不知道委派類型時。

Lambda(Type, Expression, ParameterExpression[])

使用參數運算式的陣列建立 LambdaExpression,其中委派型別在編譯時間為已知。

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

使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的陣列建立 LambdaExpression,其中委派型別在編譯時間為已知。

Lambda(Expression, String, IEnumerable<ParameterExpression>)

先從運算式主體建構委派型別、lambda 的名稱與參數運算式的可列舉集合,以建立 LambdaExpression。 它可用於在編譯階段不知道委派類型時。

Lambda(Expression, Boolean, ParameterExpression[])

先從運算式主體建構委派型別、指出是否套用 tail 呼叫最佳化的參數與參數運算式的陣列,以建立 LambdaExpression。 它可用於在編譯階段不知道委派類型時。

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

先從運算式主體建構委派型別、指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合,以建立 LambdaExpression。 它可用於在編譯階段不知道委派類型時。

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

使用參數運算式的可列舉集合建立 LambdaExpression,其中委派型別在編譯時間為已知。

Lambda(Expression, ParameterExpression[])

先從運算式主體建構委派型別與參數運算式的陣列,以建立 LambdaExpression。 它可用於在編譯階段不知道委派類型時。

Lambda(Expression, IEnumerable<ParameterExpression>)

先從運算式主體建構委派型別與參數運算式的可列舉集合,以建立 LambdaExpression。 它可用於在編譯階段不知道委派類型時。

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

使用 lambda 的名稱與參數運算式的可列舉集合建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。

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

使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的陣列建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。

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

使用 lambda 的名稱、指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。

Lambda<TDelegate>(Expression, ParameterExpression[])

使用參數運算式的陣列建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。

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

使用參數運算式的可列舉集合建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。

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

使用指出指出是否套用 tail 呼叫最佳化的參數與參數運算式的可列舉集合建立 Expression<TDelegate>,其中委派型別在編譯時間為已知。

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用 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

參數

delegateType
Type

Type,代表 Lambda 的委派簽章。

body
Expression

要將 Expression 屬性設定為與之相等的 Body

name
String

Lambda 的名稱。 用於發出偵錯資訊。

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用 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

參數

delegateType
Type

Type,代表 Lambda 的委派簽章。

body
Expression

要將 Expression 屬性設定為與之相等的 Body

name
String

Lambda 的名稱。 用於發出偵錯資訊。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用指出指出是否套用 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

參數

delegateType
Type

Type,代表 Lambda 的委派簽章。

body
Expression

要將 Expression 屬性設定為與之相等的 Body

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

先從運算式主體建構委派型別、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 的名稱。 用於發出偵錯資訊。

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

Lambda(Type, Expression, ParameterExpression[])

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
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

要將 Expression 屬性設定為與之相等的 Body

parameters
ParameterExpression[]

用以填入 ParameterExpression 集合之 Parameters 物件的陣列。

傳回

表示 Lambda 運算式的物件,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

例外狀況

delegateTypebodynull

-或-

parameters 中的一個或多個項目為 null

delegateType 不表示委派類型。

-或-

body.Type 表示的類型無法指派給 delegateType 所表示之委派類型的傳回類型。

-或-

parameters 包含的項目數與 delegateType 所表示之委派類型的參數清單不同。

-或-

parameters 之項目的 Type 屬性無法從由 delegateType 所表示之委派類型的對應參數類型指派。

備註

從這個函式傳回的物件的類型為 Expression<TDelegate> 。 類型 LambdaExpression 是用來表示傳回的物件,因為 Lambda 運算式的具象型別在編譯時期不知道。

delegateType 表示之委派型別的參數數目必須等於 的 parameters 長度。

parameters的專案必須等於 中的 body 參數運算式。

Type結果物件的 屬性等於 delegateType 。 如果 parametersnullParameters 則產生的 物件屬性是空的集合。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用指出指出是否套用 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

參數

delegateType
Type

Type,代表 Lambda 的委派簽章。

body
Expression

要將 Expression 屬性設定為與之相等的 Body

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
ParameterExpression[]

陣列,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

Lambda(Expression, String, IEnumerable<ParameterExpression>)

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

先從運算式主體建構委派型別、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,且 BodyParameters 屬性設定為指定的值。

適用於

Lambda(Expression, Boolean, ParameterExpression[])

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

先從運算式主體建構委派型別、指出是否套用 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

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
ParameterExpression[]

陣列,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

先從運算式主體建構委派型別、指出是否套用 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

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

LambdaExpression,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
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

要將 Expression 屬性設定為與之相等的 Body

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

表示 Lambda 運算式的物件,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

例外狀況

delegateTypebodynull

-或-

parameters 中的一個或多個項目為 null

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 。 如果 parametersnullParameters 則產生的 物件屬性是空的集合。

適用於

Lambda(Expression, ParameterExpression[])

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
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);
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,且 BodyParameters 屬性設定為指定的值。

例外狀況

bodynull

-或-

parameters 的一個或多個項目為 null

parameters 包含十六個以上的項目。

備註

參數 parameters 不能超過十六個元素。

parameters的專案必須等於 中的 body 參數運算式。

這個方法會從其中 System.Func 一個泛型委派建構適當的委派類型。 然後,它會將委派類型傳遞至其中 Lambda 一個處理站方法,以建立 LambdaExpression

適用於

Lambda(Expression, IEnumerable<ParameterExpression>)

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
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);
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,且 BodyParameters 屬性設定為指定的值。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用 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,且 BodyParameters 屬性設定為指定的值。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用指出指出是否套用 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

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
ParameterExpression[]

陣列,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用 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 的名稱。 用於產生偵錯資訊。

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於

Lambda<TDelegate>(Expression, ParameterExpression[])

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
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

要將 Expression 屬性設定為與之相等的 Body

parameters
ParameterExpression[]

用以填入 ParameterExpression 集合之 Parameters 物件的陣列。

傳回

Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

例外狀況

bodynull

-或-

parameters 中的一個或多個項目為 null

TDelegate 不是委派類型。

-或-

body.Type 所表示的類型無法指派給 TDelegate 的傳回類型。

-或-

parameters 包含的項目數與 TDelegate 的參數清單不同。

-或-

parameters 之項目的 Type 屬性無法從 TDelegate 之對應參數類型的類型指派。

備註

委派型 TDelegate 別的參數數目必須等於 中的 parameters 專案數目。

parameters 元素必須等於 中的 body 參數運算式。

Type結果物件的 屬性代表 型別 TDelegate 。 如果 parametersnullParameters 則結果物件的 屬性是空的集合。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
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

要將 Expression 屬性設定為與之相等的 Body

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

例外狀況

bodynull

-或-

parameters 中的一個或多個項目為 null

TDelegate 不是委派類型。

-或-

body.Type 所表示的類型無法指派給 TDelegate 的傳回類型。

-或-

parameters 包含的項目數與 TDelegate 的參數清單不同。

-或-

parameters 之項目的 Type 屬性無法從 TDelegate 之對應參數類型的類型指派。

備註

委派類型的 TDelegate 參數數目必須等於 中的 parameters 專案數目。

parameters 元素必須等於 中的 body 參數運算式。

Type結果物件的 屬性代表 型別 TDelegate 。 如果 parametersnullParameters 則結果物件的 屬性是空的集合。

適用於

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

來源:
LambdaExpression.cs
來源:
LambdaExpression.cs
來源:
LambdaExpression.cs

使用指出指出是否套用 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

tailCall
Boolean

Boolean,其代表編譯所建立的運算式時,是否會套用 tail 呼叫最佳化。

parameters
IEnumerable<ParameterExpression>

IEnumerable<T>,其中包含用以填入 ParameterExpression 集合的 Parameters 物件。

傳回

Expression<TDelegate>,其 NodeType 屬性等於 Lambda,且 BodyParameters 屬性設定為指定的值。

適用於