Expression.Call メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
MethodCallExpression を作成します。
オーバーロード
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
5 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3, System::Linq::Expressions::Expression ^ arg4);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression, arg4 As Expression) As MethodCallExpression
パラメーター
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arg0
- Expression
1 番目の引数を表す Expression。
- arg1
- Expression
2 番目の引数を表す Expression。
- arg2
- Expression
3 番目の引数を表す Expression。
- arg3
- Expression
4 番目の引数を表す Expression。
- arg4
- Expression
5 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例外
method
が null です。
適用対象
Call(Expression, MethodInfo, Expression, Expression, Expression)
3 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression
パラメーター
- instance
- Expression
インスタンス呼び出しのインスタンスを指定する Expression。 static (Visual Basic では Shared) メソッドの場合は null を渡します。
- method
- MethodInfo
呼び出し先のメソッドを表す MethodInfo。
- arg0
- Expression
1 番目の引数を表す Expression。
- arg1
- Expression
2 番目の引数を表す Expression。
- arg2
- Expression
3 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
適用対象
Call(Type, String, Type[], Expression[])
適切なファクトリ メソッドを呼び出すことにより、MethodCallExpression (Visual Basic では static
) メソッドへの呼び出しを表す Shared
を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(Type ^ type, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (type As Type, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression
パラメーター
- type
- Type
指定した static
(Visual Basic では Shared
) メソッドが格納された型です。
- methodName
- String
メソッドの名前。
- typeArguments
- Type[]
ジェネリック メソッドの型パラメーターを指定する Type オブジェクトの配列。 methodName が非ジェネリック メソッドを指定する場合、この引数は null にします。
- arguments
- Expression[]
メソッドへの引数を表す Expression オブジェクトの配列。
戻り値
Call と等しい NodeType プロパティ、指定した static
(Visual Basic では Shared
) メソッドを表す MethodInfo に設定された Method プロパティ、および指定した引数に設定された Arguments プロパティを含む MethodCallExpression。
例外
type
または methodName
が null
です。
名前が methodName
で、型パラメーターが typeArguments
と一致し、パラメーターの型が arguments
と一致するメソッドが、type
またはその基本型で見つかりません。
- または -
名前が methodName
で、型パラメーターが typeArguments
と一致し、パラメーターの型が arguments
と一致する複数のメソッドが、type
またはその基本型で見つかりました。
注釈
結果MethodCallExpressionの の プロパティはType、 によって示されるメソッドの戻り値の型とmethodName
等しくなります。 Object プロパティが null
です。
適用対象
Call(MethodInfo, Expression, Expression, Expression)
3 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression
パラメーター
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arg0
- Expression
1 番目の引数を表す Expression。
- arg1
- Expression
2 番目の引数を表す Expression。
- arg2
- Expression
3 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例外
method
が null です。
適用対象
Call(Expression, String, Type[], Expression[])
適切なファクトリ メソッドを呼び出すことにより、インスタンス メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression
パラメーター
- instance
- Expression
特定のメソッドの Expression プロパティ値が検索される Type。
- methodName
- String
メソッドの名前。
- typeArguments
- Type[]
ジェネリック メソッドの型パラメーターを指定する Type オブジェクトの配列。 methodName が非ジェネリック メソッドを指定する場合、この引数は null にします。
- arguments
- Expression[]
メソッドへの引数を表す Expression オブジェクトの配列。
戻り値
Call と等しい NodeType プロパティ、instance
と等しい Object プロパティ、指定したインスタンス メソッドを表す MethodInfo に設定された Method、および指定した引数に設定された Arguments を含む MethodCallExpression。
例外
instance
または methodName
が null
です。
名前が methodName
で、型パラメーターが typeArguments
と一致し、パラメーターの型が arguments
と一致するメソッドが、instance
.Type またはその基本型で見つかりません。
- または -
名前が methodName
で、型パラメーターが typeArguments
と一致し、パラメーターの型が arguments
と一致する複数のメソッドが、instance
.Type またはその基本型で見つかりました。
注釈
結果MethodCallExpressionの の プロパティはType、 によって示されるメソッドの戻り値の型とmethodName
等しくなります。
適用対象
Call(Expression, MethodInfo, Expression, Expression)
2 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression
パラメーター
- instance
- Expression
インスタンス呼び出しのインスタンスを指定する Expression。 static (Visual Basic では Shared) メソッドの場合は null を渡します。
- method
- MethodInfo
呼び出し先のメソッドを表す MethodInfo。
- arg0
- Expression
1 番目の引数を表す Expression。
- arg1
- Expression
2 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例
次のコード例は、2 つの引数を持つインスタンス メソッドを呼び出す式を作成する方法を示しています。
// Add the following directive to your file:
// using System.Linq.Expressions;
public class SampleClass
{
public int AddIntegers(int arg1, int arg2)
{
return arg1 + arg2;
}
}
static public void TestCall()
{
// This expression represents a call to an instance method that has two arguments.
// The first argument is an expression that creates a new object of the specified type.
Expression callExpr = Expression.Call(
Expression.New(typeof(SampleClass)),
typeof(SampleClass).GetMethod("AddIntegers", new Type[] { typeof(int), typeof(int) }),
Expression.Constant(1),
Expression.Constant(2)
);
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());
// This code example produces the following output:
//
// new SampleClass().AddIntegers(1, 2)
// 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions
Public Class SampleClass
Public Function AddIntegers(ByVal arg1 As Integer, ByVal arg2 As Integer) As Integer
Return (arg1 + arg2)
End Function
End Class
Public Shared Sub TestCall()
' This expression represents a call to an instance method that has two arguments.
' The first argument is an expression that creates a new object of the specified type.
Dim callExpr As Expression = Expression.Call(
Expression.[New](GetType(SampleClass)),
GetType(SampleClass).GetMethod("AddIntegers", New Type() {GetType(Integer), GetType(Integer)}),
Expression.Constant(1),
Expression.Constant(2)
)
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub
' This code example produces the following output:
'
' new SampleClass().AddIntegers(1, 2)
' 3
適用対象
Call(MethodInfo, Expression, Expression, Expression, Expression)
4 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression) As MethodCallExpression
パラメーター
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arg0
- Expression
1 番目の引数を表す Expression。
- arg1
- Expression
2 番目の引数を表す Expression。
- arg2
- Expression
3 番目の引数を表す Expression。
- arg3
- Expression
4 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例外
method
が null です。
適用対象
Call(Expression, MethodInfo, Expression[])
引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression
パラメーター
- instance
- Expression
インスタンス メソッドの呼び出しのインスタンスを指定する Expression。null
(Visual Basic では static
) メソッドに Shared
を渡します。
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arguments
- Expression[]
Expression コレクションへの読み込みに使用する Arguments オブジェクトの配列。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call、Object、および Method の各プロパティを含む Arguments。
例外
method
は null
です。
- または -
instance
は null
で、method
はインスタンス メソッドを表します。
- または -
arguments
は null
ではなく、その要素の 1 つ以上が null
です。
instance
.Type は、method
の表すメソッドの宣言型に割り当てることができません。
- または -
arguments
の要素の数が、method
の表すメソッドのパラメーターの数と一致しません。
- または -
arguments
の 1 つ以上の要素が、method
の表すメソッドの対応するパラメーターに割り当てることができません。
注釈
(Shared
Visual Basic では) メソッドの呼び出しをstatic
表すには、このメソッドを呼び出すときに パラメーターに instance
を渡null
すか、代わりに を呼び出Callします。
がインスタンス メソッドを表す場合method
、 の instance
プロパティはType、 でmethod
表されるメソッドの宣言型に割り当て可能である必要があります。
が でないnull
場合arguments
は、 でmethod
表されるメソッドのパラメーターの数と同じ数の要素を持つ必要があります。 内のarguments
各要素は、 null
ではなく、引用符で囲んでから、 の対応するパラメーターmethod
に割り当て可能である必要があります。
注意
要素は、対応するメソッド パラメーターが 型 Expressionの場合にのみ引用符で囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティ Operand が の arguments
要素である です。
が Arguments の場合arguments
、結果の MethodCallExpression の プロパティは空ですnull
。 それ以外の場合は、 と同じ要素 arguments
が含まれます。その一部は引用符で囲まれる場合があります。
結果MethodCallExpressionの の プロパティはType、 でmethod
表されるメソッドの戻り値の型と等しくなります。
適用対象
Call(Expression, MethodInfo, IEnumerable<Expression>)
引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression
パラメーター
- instance
- Expression
Expression プロパティを等しく設定する Object (null
(Visual Basic では static
) メソッドに Shared
を渡します)。
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arguments
- IEnumerable<Expression>
IEnumerable<T> コレクションへの読み込みに使用する Expression オブジェクトを含む Arguments。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call、Object、および Method の各プロパティを含む Arguments。
例外
instance
.Type は、method
の表すメソッドの宣言型に割り当てることができません。
- または -
arguments
の要素の数が、method
の表すメソッドのパラメーターの数と一致しません。
- または -
arguments
の 1 つ以上の要素が、method
の表すメソッドの対応するパラメーターに割り当てることができません。
注釈
(Shared
Visual Basic では) メソッドの呼び出しをstatic
表すには、このメソッドを呼び出すときに パラメーターに instance
を渡null
すか、代わりに を呼び出Callします。
がインスタンス メソッドを表す場合method
、 の instance
プロパティはType、 でmethod
表されるメソッドの宣言型に割り当て可能である必要があります。
が でないnull
場合arguments
は、 でmethod
表されるメソッドのパラメーターの数と同じ数の要素を持つ必要があります。 内のarguments
各要素は、 null
ではなく、引用符で囲んでから、 の対応するパラメーターmethod
に割り当て可能である必要があります。
注意
要素は、対応するメソッド パラメーターが 型 Expressionの場合にのみ引用符で囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティ Operand が の arguments
要素である です。
が Arguments の場合arguments
、結果の MethodCallExpression の プロパティは空ですnull
。 それ以外の場合は、 と同じ要素 arguments
が含まれます。その一部は引用符で囲まれる場合があります。
結果MethodCallExpressionの の プロパティはType、 でmethod
表されるメソッドの戻り値の型と等しくなります。
適用対象
Call(MethodInfo, Expression[])
引数を持つ static
(Visual Basic では Shared
) メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression
パラメーター
- method
- MethodInfo
MethodInfo プロパティを等しく設定する static
(Visual Basic では Shared
) メソッドを表す Method。
- arguments
- Expression[]
Expression コレクションへの読み込みに使用する Arguments オブジェクトの配列。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Method プロパティを含む Arguments。
例外
method
が null
です。
arguments
の要素の数が、method
の表すメソッドのパラメーターの数と一致しません。
- または -
arguments
の 1 つ以上の要素が、method
の表すメソッドの対応するパラメーターに割り当てることができません。
注釈
が でないnull
場合arguments
は、 でmethod
表されるメソッドのパラメーターの数と同じ数の要素を持つ必要があります。 内のarguments
各要素は、 null
ではなく、引用符で囲んでから、 の対応するパラメーターmethod
に割り当て可能である必要があります。
注意
要素は、対応するメソッド パラメーターが 型 Expressionの場合にのみ引用符で囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティ Operand が の arguments
要素である です。
が Arguments の場合arguments
、結果の MethodCallExpression の プロパティは空ですnull
。 それ以外の場合は、 と同じ要素 arguments
が含まれます。その一部は引用符で囲まれる場合があります。
結果MethodCallExpressionの の プロパティはType、 でmethod
表されるメソッドの戻り値の型と等しくなります。 Object プロパティが null
です。
適用対象
Call(MethodInfo, Expression)
1 つの引数を受け取る MethodCallExpression (Visual Basic では static
) メソッドへの呼び出しを表す Shared
を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression) As MethodCallExpression
パラメーター
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arg0
- Expression
1 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例外
method
が null です。
例
次の例では、1 つの引数を受け取る (Shared
Visual Basic の場合) メソッドをstatic
呼び出す式を作成する方法を示します。
// Add the following directive to your file:
// using System.Linq.Expressions;
public class SampleClass
{
public static int Increment(int arg1)
{
return arg1 + 1;
}
}
static public void TestCall()
{
//This expression represents a call to an instance method with one argument.
Expression callExpr = Expression.Call(
typeof(SampleClass).GetMethod("Increment"),
Expression.Constant(2)
);
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());
// This code example produces the following output:
//
// Increment(2)
// 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions
Public Class SampleClass
Shared Function Increment(ByVal arg1 As Integer) As Integer
Return arg1 + 1
End Function
End Class
Shared Sub TestCall()
'This expression represents a call to an instance method with one argument.
Dim callExpr As Expression = Expression.Call(
GetType(SampleClass).GetMethod("Increment"),
Expression.Constant(2))
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub
' This code example produces the following output:
'
' Increment(2)
' 3
適用対象
Call(MethodInfo, IEnumerable<Expression>)
static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression
パラメーター
- method
- MethodInfo
呼び出し先のメソッドを表す MethodInfo。
- arguments
- IEnumerable<Expression>
呼び出しの引数を表す Expression のコレクション。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
適用対象
Call(Expression, MethodInfo)
引数を受け取らないメソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo) As MethodCallExpression
パラメーター
- instance
- Expression
インスタンス メソッドの呼び出しのインスタンスを指定する Expression。null
(Visual Basic では static
) メソッドに Shared
を渡します。
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例外
instance
.Type は、method
の表すメソッドの宣言型に割り当てることができません。
例
次のコード例は、引数を指定せずにメソッドを呼び出す式を作成する方法を示しています。
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a call to an instance method without arguments.
Expression callExpr = Expression.Call(
Expression.Constant("sample string"), typeof(String).GetMethod("ToUpper", new Type[] { }));
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<String>>(callExpr).Compile()());
// This code example produces the following output:
//
// "sample string".ToUpper
// SAMPLE STRING
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a call to an instance method without arguments.
Dim callExpr As Expression = Expression.Call(
Expression.Constant("sample string"), GetType(String).GetMethod("ToUpper", New Type() {}))
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of String))(callExpr).Compile()())
' This code example produces the following output:
'
' "sample string".ToUpper
' SAMPLE STRING
注釈
(Shared
Visual Basic では) メソッドの呼び出しをstatic
表すには、このメソッドを呼び出すときに パラメーターに instance
を渡しますnull
。
がインスタンス メソッドを表す場合method
、 の instance
プロパティはType、 でmethod
表されるメソッドの宣言型に割り当て可能である必要があります。
Arguments結果MethodCallExpressionの の プロパティは空です。 プロパティは Type 、 で method
表されるメソッドの戻り値の型と等しくなります。
適用対象
Call(MethodInfo, Expression, Expression)
2 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression
パラメーター
- method
- MethodInfo
MethodInfo プロパティを等しく設定する Method。
- arg0
- Expression
1 番目の引数を表す Expression。
- arg1
- Expression
2 番目の引数を表す Expression。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method。
例外
method
が null です。
適用対象
.NET