次の方法で共有


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 を作成します。

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

Expression プロパティを等しく設定する Body

name
String

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

tailCall
Boolean

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

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

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

Expression プロパティを等しく設定する Body

name
String

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

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

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

Expression プロパティを等しく設定する Body

tailCall
Boolean

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

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

ソース:
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);
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

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

tailCall
Boolean

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

Lambda(Type, Expression, ParameterExpression[])

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

パラメーター式の配列を使用し、コンパイル時にデリゲート型が既知である LambdaExpression を作成します。

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

パラメーター

delegateType
Type

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

body
Expression

Expression プロパティを等しく設定する Body

parameters
ParameterExpression[]

ParameterExpression コレクションへの読み込みに使用する Parameters オブジェクトの配列。

戻り値

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

例外

delegateType または bodynull です。

- または -

parameters の 1 つ以上の要素が null です。

delegateType がデリゲート型を表していません。

- または -

body.Type は、delegateType によって表されるデリゲート型の戻り値の型に代入できない型を表しています。

- または -

parameters に、delegateType により表されるデリゲート型のパラメーターのリストと同じ数の要素が格納されていません。

- または -

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

注釈

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

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

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

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

適用対象

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

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

Expression プロパティを等しく設定する Body

tailCall
Boolean

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

parameters
ParameterExpression[]

ParameterExpression コレクションへの読み込みに使用する Parameters オブジェクトを格納する配列。

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

Lambda(Expression, String, IEnumerable<ParameterExpression>)

ソース:
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);
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.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);
public static System.Linq.Expressions.LambdaExpression Lambda (System.Linq.Expressions.Expression body, bool tailCall, params System.Linq.Expressions.ParameterExpression[]? parameters);
static member Lambda : System.Linq.Expressions.Expression * bool * System.Linq.Expressions.ParameterExpression[] -> System.Linq.Expressions.LambdaExpression
Public Shared Function Lambda (body As Expression, tailCall As Boolean, ParamArray parameters As ParameterExpression()) As LambdaExpression

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

tailCall
Boolean

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

parameters
ParameterExpression[]

ParameterExpression コレクションへの読み込みに使用する Parameters オブジェクトを格納する配列。

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

Lambda(Expression, Boolean, IEnumerable<ParameterExpression>)

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

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

tailCall
Boolean

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

Lambda(Type, Expression, IEnumerable<ParameterExpression>)

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

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

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

パラメーター

delegateType
Type

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

body
Expression

Expression プロパティを等しく設定する Body

parameters
IEnumerable<ParameterExpression>

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

戻り値

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

例外

delegateType または bodynull です。

- または -

parameters の 1 つ以上の要素が null です。

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場合parametersParameters結果のオブジェクトの プロパティは空のコレクションです。

適用対象

Lambda(Expression, ParameterExpression[])

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

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

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

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

parameters
ParameterExpression[]

ParameterExpression コレクションへの読み込みに使用する Parameters オブジェクトの配列。

戻り値

LambdaExpression と等しい NodeType プロパティと、指定した値に設定された Lambda プロパティおよび Body プロパティを含む Parameters

例外

bodynull です。

- または -

parameters の 1 つ以上の要素が null です。

parameters に、16 個を超える要素が格納されています。

注釈

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

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

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

適用対象

Lambda(Expression, IEnumerable<ParameterExpression>)

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

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

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

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

parameters
IEnumerable<ParameterExpression>

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

戻り値

Lambda と等しい LambdaExpression プロパティと、指定した値に設定された NodeType プロパティおよび Body プロパティを含む Parameters

適用対象

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

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

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

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::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[])

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

Expression プロパティを等しく設定する Body

tailCall
Boolean

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

parameters
ParameterExpression[]

ParameterExpression コレクションへの読み込みに使用する Parameters オブジェクトを格納する配列。

戻り値

Expression<TDelegate> と等しい NodeType プロパティと、指定した値に設定された Lambda プロパティおよび Body プロパティを含む Parameters

適用対象

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

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

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

public:
generic <typename TDelegate>
 static System::Linq::Expressions::Expression<TDelegate> ^ Lambda(System::Linq::Expressions::Expression ^ body, System::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

ラムダの名前。 デバッグ情報を生成するために使用します。

tailCall
Boolean

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Expression<TDelegate> と等しい NodeType プロパティと、指定した値に設定された Lambda プロパティおよび Body プロパティを含む Parameters

適用対象

Lambda<TDelegate>(Expression, ParameterExpression[])

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

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

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

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

parameters
ParameterExpression[]

ParameterExpression コレクションへの読み込みに使用する Parameters オブジェクトの配列。

戻り値

Expression<TDelegate> と等しい NodeType プロパティと、指定した値に設定された Lambda プロパティおよび Body プロパティを含む Parameters

例外

bodynull です。

- または -

parameters の 1 つ以上の要素が null です。

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

- または -

body.Type は、TDelegate の戻り値の型に代入できない型を表します。

- または -

parameters に、TDelegate のパラメーターのリストと同じ数の要素が格納されていません。

- または -

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

注釈

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

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

結果のオブジェクトの プロパティは Type 、 型 TDelegateを表します。 が nullの場合parametersParameters結果のオブジェクトの プロパティは空のコレクションです。

適用対象

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

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

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

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

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

parameters
IEnumerable<ParameterExpression>

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

戻り値

Expression<TDelegate> と等しい NodeType プロパティと、指定した値に設定された Lambda プロパティおよび Body プロパティを含む Parameters

例外

bodynull です。

- または -

parameters の 1 つ以上の要素が null です。

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

- または -

body.Type は、TDelegate の戻り値の型に代入できない型を表します。

- または -

parameters に、TDelegate のパラメーターのリストと同じ数の要素が格納されていません。

- または -

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

注釈

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

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

結果のオブジェクトの プロパティは Type 、 型 TDelegateを表します。 が nullの場合parametersParameters結果のオブジェクトの プロパティは空のコレクションです。

適用対象

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

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

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

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

型パラメーター

TDelegate

デリゲート型。

パラメーター

body
Expression

Expression プロパティを等しく設定する Body

tailCall
Boolean

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

parameters
IEnumerable<ParameterExpression>

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

戻り値

Expression<TDelegate> と等しい NodeType プロパティと、指定した値に設定された Lambda プロパティおよび Body プロパティを含む Parameters

適用対象