Expression.Lambda メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ラムダ式を表す式ツリーを作成します。
オーバーロード
| 名前 | 説明 |
|---|---|
| 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 を作成します。ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを指定します。
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
Body プロパティを等しい値に設定するExpression。
- name
- String
ラムダの名前。 デバッグ情報を出力するために使用されます。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
適用対象
Lambda(Type, Expression, String, IEnumerable<ParameterExpression>)
ラムダの名前とパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される 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
Body プロパティを等しい値に設定するExpression。
- name
- String
ラムダの名前。 デバッグ情報を出力するために使用されます。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
適用対象
Lambda(Type, Expression, Boolean, IEnumerable<ParameterExpression>)
末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される LambdaExpression を作成します。
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
パラメーター
- body
- Expression
Body プロパティを等しい値に設定するExpression。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
適用対象
Lambda(Expression, String, Boolean, IEnumerable<ParameterExpression>)
最初に式本体からデリゲート型、ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを作成して、 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
ラムダの名前。 デバッグ情報を出力するために使用されます。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
- 属性
適用対象
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
Body プロパティを等しい値に設定するExpression。
- parameters
- ParameterExpression[]
Parameters コレクションの設定に使用するParameterExpression オブジェクトの配列。
戻り値
Lambdaと等しいNodeType プロパティと、指定した値に設定されたBodyプロパティとParametersプロパティを持つラムダ式を表すオブジェクト。
例外
delegateType はデリゲート型を表しません。
-又は-
body.型は、 delegateTypeによって表されるデリゲート型の戻り値の型に割り当てられない型を表します。
-又は-
parameters には、 delegateTypeで表されるデリゲート型のパラメーターの一覧と同じ数の要素が含まれていません。
-又は-
parametersの要素のTypeプロパティは、delegateTypeで表されるデリゲート型の対応するパラメーター型の型から割り当てできません。
注釈
この関数から返されるオブジェクトは、 Expression<TDelegate>型です。 LambdaExpression型は、コンパイル時にラムダ式の具象型がわからないため、返されるオブジェクトを表すために使用されます。
delegateTypeで表されるデリゲート型のパラメーターの数は、parametersの長さと同じである必要があります。
parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。
結果のオブジェクトの Type プロパティは、 delegateTypeと等しくなります。
parametersがnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。
適用対象
Lambda(Type, Expression, Boolean, ParameterExpression[])
コンパイル時にデリゲート型が認識される LambdaExpression を作成します。末尾呼び出しの最適化が適用されるかどうかを示すパラメーターと、パラメーター式の配列を指定します。
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(Type ^ delegateType, System::Linq::Expressions::Expression ^ body, bool tailCall, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[] parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(Type delegateType, System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : Type * System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (delegateType As Type, body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression
パラメーター
- body
- Expression
Body プロパティを等しい値に設定するExpression。
- parameters
- ParameterExpression[]
Parameters コレクションの設定に使用するParameterExpressionオブジェクトを含む配列。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
適用対象
Lambda(Expression, String, IEnumerable<ParameterExpression>)
最初に、式本体からデリゲート型、ラムダの名前、およびパラメーター式の列挙可能なコレクションを構築して、 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 を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。
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。
- parameters
- ParameterExpression[]
Parameters コレクションの設定に使用するParameterExpressionオブジェクトを含む配列。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
- 属性
適用対象
Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)
最初に式本体からデリゲート型、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
パラメーター
- body
- Expression
Body プロパティを等しい値に設定するExpression。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
- 属性
適用対象
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
Body プロパティを等しい値に設定するExpression。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
Lambdaと等しいNodeType プロパティと、指定した値に設定されたBodyプロパティとParametersプロパティを持つラムダ式を表すオブジェクト。
例外
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と等しくなります。
parametersがnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。
適用対象
Lambda(Expression, ParameterExpression[])
最初に式本体からデリゲート型を構築し、パラメーター式の配列を作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[] parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, ParamArray parameters As ParameterExpression()) As LambdaExpression
パラメーター
- body
- Expression
Body プロパティを等しい値に設定するExpression。
- parameters
- ParameterExpression[]
Parameters コレクションの設定に使用するParameterExpression オブジェクトの配列。
戻り値
NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているLambdaExpression。
- 属性
例外
parameters には、16 を超える要素が含まれています。
注釈
parameters パラメーターには、16 個を超える要素を含めてはなりません。
parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。
このメソッドは、 System.Func ジェネリック デリゲートの 1 つから適切なデリゲート型を構築します。 次に、デリゲート型を Lambda ファクトリ メソッドのいずれかに渡して、 LambdaExpressionを作成します。
適用対象
Lambda(Expression, IEnumerable<ParameterExpression>)
最初に式本体からデリゲート型を構築し、パラメーター式の列挙可能なコレクションを作成して、 LambdaExpression を作成します。 これは、コンパイル時にデリゲート型が不明な場合に使用できます。
public:
static System::Linq::Expressions::LambdaExpression ^ Lambda(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")]
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
public static System.Linq.Expressions.LambdaExpression Lambda(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Delegate creation requires dynamic code generation.")>]
static member Lambda : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, parameters As IEnumerable(Of ParameterExpression)) As LambdaExpression
パラメーター
- body
- Expression
Body プロパティを等しい値に設定するExpression。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
ラムダと等しいNodeTypeプロパティ、および指定した値に設定されたBodyプロパティとParametersプロパティを持つLambdaExpression。
- 属性
適用対象
Lambda<TDelegate>(Expression, String, IEnumerable<ParameterExpression>)
ラムダの名前とパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される 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[])
コンパイル時にデリゲート型が認識される 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。
- parameters
- ParameterExpression[]
Parameters コレクションの設定に使用するParameterExpressionオブジェクトを含む配列。
戻り値
NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>。
適用対象
Lambda<TDelegate>(Expression, String, Boolean, IEnumerable<ParameterExpression>)
ラムダの名前、末尾呼び出しの最適化を適用するかどうかを示すパラメーター、およびパラメーター式の列挙可能なコレクションを使用して、コンパイル時にデリゲート型が認識される 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
ラムダの名前。 デバッグ情報の生成に使用されます。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>。
適用対象
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
Body プロパティを等しい値に設定するExpression。
- parameters
- ParameterExpression[]
Parameters コレクションの設定に使用するParameterExpression オブジェクトの配列。
戻り値
NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>。
例外
TDelegate はデリゲート型ではありません。
-又は-
body.型は、 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
Body プロパティを等しい値に設定するExpression。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>。
例外
TDelegate はデリゲート型ではありません。
-又は-
body.型は、 TDelegateの戻り値の型に割り当てられない型を表します。
-又は-
parameters には、 TDelegateのパラメーターの一覧と同じ数の要素が含まれていません。
-又は-
parametersの要素のTypeプロパティは、TDelegateの対応するパラメーター型の型から割り当てできません。
注釈
デリゲート型 TDelegate のパラメーターの数は、 parameters内の要素の数と等しい必要があります。
parametersの要素は、bodyのパラメーター式と同じ参照である必要があります。
結果のオブジェクトの Type プロパティは、 TDelegate型を表します。
parametersがnull場合、結果のオブジェクトのParameters プロパティは空のコレクションになります。
適用対象
Lambda<TDelegate>(Expression, Boolean, IEnumerable<ParameterExpression>)
末尾呼び出しの最適化を適用するかどうかを示すパラメーターと、パラメーター式の列挙可能なコレクションを使用して、デリゲート型がコンパイル時に認識される Expression<TDelegate> を作成します。
public:
generic <typename TDelegate>
static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, bool tailCall, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> parameters);
public static System.Linq.Expressions.Expression<TDelegate> Lambda<TDelegate>(System.Linq.Expressions.Expression body, bool tailCall, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * seq<System.Linq.Expressions.ParameterExpression> -> System.Linq.Expressions.Expression<'Delegate>
Public Shared Function Lambda(Of TDelegate) (body As Expression, tailCall As Boolean, parameters As IEnumerable(Of ParameterExpression)) As Expression(Of TDelegate)
型パラメーター
- TDelegate
デリゲート型。
パラメーター
- body
- Expression
Body プロパティを等しい値に設定するExpression。
- parameters
- IEnumerable<ParameterExpression>
Parameters コレクションの設定に使用するParameterExpression オブジェクトを含むIEnumerable<T>。
戻り値
NodeType プロパティが Lambda と等しく、BodyプロパティとParametersプロパティが指定した値に設定されているExpression<TDelegate>。