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