次の方法で共有


Expression.Lambda メソッド

定義

ラムダ式を表す式ツリーを作成します。

オーバーロード

名前 説明
Lambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)

コンパイル時にデリゲート型が認識される LambdaExpression を作成します。ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを指定します。

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

ラムダの名前とパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される LambdaExpression を作成します。

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

末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される LambdaExpression を作成します。

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

最初に式本体からデリゲート型、ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Type, Expression, ParameterExpression[])

パラメーター式の配列を使用して、コンパイル時にデリゲート型が認識される LambdaExpression を作成します。

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

コンパイル時にデリゲート型が認識される LambdaExpression を作成します。末尾呼び出しの最適化が適用されるかどうかを示すパラメーターと、パラメーター式の配列を指定します。

Lambda(Expression, String, IEnumerable<ParameterExpression>)

最初に、式本体からデリゲート型、ラムダの名前、およびパラメーター式の列挙可能なコレクションを構築して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, Boolean, ParameterExpression[])

最初に式本体からデリゲート型、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の配列を作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

最初に式本体からデリゲート型、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

パラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される LambdaExpression を作成します。

Lambda(Expression, ParameterExpression[])

最初に式本体からデリゲート型を構築し、パラメーター式の配列を作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

Lambda(Expression, IEnumerable<ParameterExpression>)

最初に式本体からデリゲート型を構築し、パラメーター式の列挙可能なコレクションを作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

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

ラムダの名前とパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される Expression<TDelegate> を作成します。

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

コンパイル時にデリゲート型が認識される Expression<TDelegate> を作成します。末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の配列を指定します。

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

ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される Expression<TDelegate> を作成します。

Lambda<TDelegate>(Expression, ParameterExpression[])

パラメーター式の配列を使用して、コンパイル時にデリゲート型が認識される Expression<TDelegate> を作成します。

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

パラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される Expression<TDelegate> を作成します。

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

末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の列挙可能なコレクションを使用して、デリゲート型がコンパイル時に認識される Expression<TDelegate> を作成します。

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

コンパイル時にデリゲート型が認識される 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

body
Expression

Body プロパティを等しい値に設定するExpression

name
String

ラムダの名前。 デバッグ情報を出力するために使用されます。

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

ラムダの名前とパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される 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

body
Expression

Body プロパティを等しい値に設定するExpression

name
String

ラムダの名前。 デバッグ情報を出力するために使用されます。

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される LambdaExpression を作成します。

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

パラメーター

delegateType
Type

ラムダのデリゲートシグネチャを表す Type

body
Expression

Body プロパティを等しい値に設定するExpression

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

最初に式本体からデリゲート型、ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを作成して、 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

Body プロパティを等しい値に設定するExpression

name
String

ラムダの名前。 デバッグ情報を出力するために使用されます。

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

属性

適用対象

Lambda(Type, Expression, ParameterExpression[])

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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

body
Expression

Body プロパティを等しい値に設定するExpression

parameters
ParameterExpression[]

Parameters コレクションの設定に使用するParameterExpression オブジェクトの配列。

戻り値

Lambdaと等しいNodeType プロパティと、指定した値に設定されたBodyプロパティとParametersプロパティを持つラムダ式を表すオブジェクト。

例外

delegateType または bodynull

-又は-

parameters内の 1 つ以上の要素がnull

delegateType はデリゲート型を表しません。

-又は-

body.型は、 delegateTypeによって表されるデリゲート型の戻り値の型に割り当てられない型を表します。

-又は-

parameters には、 delegateTypeで表されるデリゲート型のパラメーターの一覧と同じ数の要素が含まれていません。

-又は-

parametersの要素のTypeプロパティは、delegateTypeで表されるデリゲート型の対応するパラメーター型の型から割り当てできません。

注釈

この関数から返されるオブジェクトは、 Expression<TDelegate>型です。 LambdaExpression型は、コンパイル時にラムダ式の具象型がわからないため、返されるオブジェクトを表すために使用されます。

delegateTypeで表されるデリゲート型のパラメーターの数は、parametersの長さと同じである必要があります。

parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。

結果のオブジェクトの Type プロパティは、 delegateTypeと等しくなります。 parametersnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

コンパイル時にデリゲート型が認識される LambdaExpression を作成します。末尾呼び出しの最適化が適用されるかどうかを示すパラメーターと、パラメーター式の配列を指定します。

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression

パラメーター

delegateType
Type

ラムダのデリゲートシグネチャを表す Type

body
Expression

Body プロパティを等しい値に設定するExpression

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
ParameterExpression[]

Parameters コレクションの設定に使用するParameterExpressionオブジェクトを含む配列。

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

適用対象

Lambda(Expression, String, IEnumerable<ParameterExpression>)

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

最初に、式本体からデリゲート型、ラムダの名前、およびパラメーター式の列挙可能なコレクションを構築して、 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

Body プロパティを等しい値に設定するExpression

name
String

ラムダの名前。 デバッグ情報を出力するために使用されます。

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

属性

適用対象

Lambda(Expression, Boolean, ParameterExpression[])

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

最初に式本体からデリゲート型、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の配列を作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
ParameterExpression[]

Parameters コレクションの設定に使用するParameterExpressionオブジェクトを含む配列。

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

属性

適用対象

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

最初に式本体からデリゲート型、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。

public:
 static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

属性

適用対象

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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

body
Expression

Body プロパティを等しい値に設定するExpression

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

Lambdaと等しいNodeType プロパティと、指定した値に設定されたBodyプロパティとParametersプロパティを持つラムダ式を表すオブジェクト。

例外

delegateType または bodynull

-又は-

parameters内の 1 つ以上の要素がnull

delegateType はデリゲート型を表しません。

-又は-

body.型は、 delegateTypeによって表されるデリゲート型の戻り値の型に割り当てられない型を表します。

-又は-

parameters には、 delegateTypeで表されるデリゲート型のパラメーターの一覧と同じ数の要素が含まれていません。

-又は-

parametersの要素のTypeプロパティは、delegateTypeで表されるデリゲート型の対応するパラメーター型の型から割り当てできません。

次の例では、渡された引数に 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型は、コンパイル時にラムダ式の具象型がわからないため、返されるオブジェクトを表すために使用されます。

で表されるデリゲート型のパラメーターの数delegateType は、 parametersの長さと等しい必要があります。

parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。

結果のオブジェクトの Type プロパティは、 delegateTypeと等しくなります。 parametersnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。

適用対象

Lambda(Expression, ParameterExpression[])

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

parameters
ParameterExpression[]

Parameters コレクションの設定に使用するParameterExpression オブジェクトの配列。

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているLambdaExpression

属性

例外

bodynullです。

-又は-

parametersの 1 つ以上の要素がnull

parameters には、16 を超える要素が含まれています。

注釈

parameters パラメーターには、16 個を超える要素を含めてはなりません。

parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。

このメソッドは、 System.Func ジェネリック デリゲートの 1 つから適切なデリゲート型を構築します。 次に、デリゲート型を Lambda ファクトリ メソッドのいずれかに渡して、 LambdaExpressionを作成します。

適用対象

Lambda(Expression, IEnumerable<ParameterExpression>)

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression

属性

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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::String ^ name, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string? name, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, name As String, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

name
String

ラムダの名前。 デバッグ情報の生成に使用されます。

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

コンパイル時にデリゲート型が認識される Expression<TDelegate> を作成します。末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の配列を指定します。

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As Expression(Of TDelegate)

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
ParameterExpression[]

Parameters コレクションの設定に使用するParameterExpressionオブジェクトを含む配列。

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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::String ^ name, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, string? name, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * string * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, name As String, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

name
String

ラムダの名前。 デバッグ情報の生成に使用されます。

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>

適用対象

Lambda<TDelegate>(Expression, ParameterExpression[])

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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

Body プロパティを等しい値に設定するExpression

parameters
ParameterExpression[]

Parameters コレクションの設定に使用するParameterExpression オブジェクトの配列。

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>

例外

bodynullです。

-又は-

parameters内の 1 つ以上の要素がnull

TDelegate はデリゲート型ではありません。

-又は-

body.型は、 TDelegateの戻り値の型に割り当てられない型を表します。

-又は-

parameters には、 TDelegateのパラメーターの一覧と同じ数の要素が含まれていません。

-又は-

parametersの要素のTypeプロパティは、TDelegateの対応するパラメーター型の型から割り当てできません。

注釈

デリゲート型 TDelegate のパラメーターの数は、 parameters内の要素の数と等しい必要があります。

parametersの要素は、body内のパラメーター式と同じ参照である必要があります。

結果のオブジェクトの Type プロパティは、 TDelegate型を表します。 parametersnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
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

Body プロパティを等しい値に設定するExpression

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>

例外

bodynullです。

-又は-

parameters内の 1 つ以上の要素がnull

TDelegate はデリゲート型ではありません。

-又は-

body.型は、 TDelegateの戻り値の型に割り当てられない型を表します。

-又は-

parameters には、 TDelegateのパラメーターの一覧と同じ数の要素が含まれていません。

-又は-

parametersの要素のTypeプロパティは、TDelegateの対応するパラメーター型の型から割り当てできません。

注釈

デリゲート型 TDelegate のパラメーターの数は、 parameters内の要素の数と等しい必要があります。

parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。

結果のオブジェクトの Type プロパティは、 TDelegate型を表します。 parametersnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。

適用対象

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

ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs
ソース:
LambdaExpression.cs

末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の列挙可能なコレクションを使用して、デリゲート型がコンパイル時に認識される Expression<TDelegate> を作成します。

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Body プロパティを等しい値に設定するExpression

tailCall
Boolean

作成された式のコンパイル時に末尾呼び出しの最適化が適用されるかどうかを示す Boolean

parameters
IEnumerable<ParameterExpression>

Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>

戻り値

NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>

適用対象