Expression.Invoke メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
InvocationExpression を作成します。
オーバーロード
Invoke(Expression, Expression[]) |
引数式のリストにデリゲートまたはラムダ式を適用する InvocationExpression を作成します。 |
Invoke(Expression, IEnumerable<Expression>) |
引数式のリストにデリゲートまたはラムダ式を適用する InvocationExpression を作成します。 |
Invoke(Expression, Expression[])
引数式のリストにデリゲートまたはラムダ式を適用する InvocationExpression を作成します。
public:
static System::Linq::Expressions::InvocationExpression ^ Invoke(System::Linq::Expressions::Expression ^ expression, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, params System.Linq.Expressions.Expression[]? arguments);
static member Invoke : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.InvocationExpression
Public Shared Function Invoke (expression As Expression, ParamArray arguments As Expression()) As InvocationExpression
パラメーター
- expression
- Expression
適用するデリゲートまたはラムダ式を表す Expression。
- arguments
- Expression[]
デリゲートまたはラムダ式が適用される引数を表す Expression オブジェクトの配列。
戻り値
指定された引数に、指定されたデリゲートまたはラムダ式を適用する InvocationExpression。
例外
expression
が null
です。
expression
.Type はデリゲート型または Expression<TDelegate> を表しません。
- または -
arguments
の要素の Type プロパティは、expression
によって表されるデリゲートの対応するパラメーターの型に代入できません。
arguments
に、expression
により表されるデリゲートのパラメーターのリストと同じ数の要素が格納されていません。
例
次の例では、 メソッドを Invoke(Expression, Expression[]) 使用して、指定した引数を持つラムダ式の呼び出しを表す を作成 InvocationExpression する方法を示します。
System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
(num1, num2) => (num1 + num2) > 1000;
// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
System.Linq.Expressions.Expression.Invoke(
largeSumTest,
System.Linq.Expressions.Expression.Constant(539),
System.Linq.Expressions.Expression.Constant(281));
Console.WriteLine(invocationExpression.ToString());
// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
Function(num1, num2) (num1 + num2) > 1000
' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
System.Linq.Expressions.Expression.Invoke( _
largeSumTest, _
System.Linq.Expressions.Expression.Constant(539), _
System.Linq.Expressions.Expression.Constant(281))
Console.WriteLine(invocationExpression.ToString())
' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
注釈
結果InvocationExpressionの の プロパティはType、 によって表されるデリゲートの戻り値の型をexpression
表します。型。
が Arguments の場合arguments
、結果の InvocationExpression の プロパティは空ですnull
。 それ以外の場合は、これらのExpressionオブジェクトの一部を引用符でarguments
囲む場合を除き、同じ要素が含まれます。
注意
で表されるデリゲートの対応するパラメーターが 型Expressionの場合にのみ、要素が引用符でexpression
囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティ Operand が の arguments
要素である です。
適用対象
Invoke(Expression, IEnumerable<Expression>)
引数式のリストにデリゲートまたはラムダ式を適用する InvocationExpression を作成します。
public:
static System::Linq::Expressions::InvocationExpression ^ Invoke(System::Linq::Expressions::Expression ^ expression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.InvocationExpression Invoke (System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Invoke : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.InvocationExpression
Public Shared Function Invoke (expression As Expression, arguments As IEnumerable(Of Expression)) As InvocationExpression
パラメーター
- expression
- Expression
適用するデリゲートまたはラムダ式を表す Expression。
- arguments
- IEnumerable<Expression>
デリゲートまたはラムダ式が適用される引数を表す IEnumerable<T> オブジェクトを格納している Expression。
戻り値
指定された引数に、指定されたデリゲートまたはラムダ式を適用する InvocationExpression。
例外
expression
が null
です。
expression
.Type はデリゲート型または Expression<TDelegate> を表しません。
- または -
arguments
の要素の Type プロパティは、expression
によって表されるデリゲートの対応するパラメーターの型に代入できません。
arguments
に、expression
により表されるデリゲートのパラメーターのリストと同じ数の要素が格納されていません。
例
次の例では、 メソッドを Invoke(Expression, Expression[]) 使用して、指定した引数を持つラムダ式の呼び出しを表す を作成 InvocationExpression する方法を示します。
System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
(num1, num2) => (num1 + num2) > 1000;
// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
System.Linq.Expressions.Expression.Invoke(
largeSumTest,
System.Linq.Expressions.Expression.Constant(539),
System.Linq.Expressions.Expression.Constant(281));
Console.WriteLine(invocationExpression.ToString());
// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
Function(num1, num2) (num1 + num2) > 1000
' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
System.Linq.Expressions.Expression.Invoke( _
largeSumTest, _
System.Linq.Expressions.Expression.Constant(539), _
System.Linq.Expressions.Expression.Constant(281))
Console.WriteLine(invocationExpression.ToString())
' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
注釈
結果InvocationExpressionの の プロパティはType、 によって表されるデリゲートの戻り値の型をexpression
表します。型。
が Arguments の場合arguments
、結果の InvocationExpression の プロパティは空ですnull
。 それ以外の場合は、これらのExpressionオブジェクトの一部を引用符でarguments
囲む場合を除き、同じ要素が含まれます。
注意
で表されるデリゲートの対応するパラメーターが 型Expressionの場合にのみ、要素が引用符でexpression
囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティ Operand が の arguments
要素である です。
適用対象
.NET