Expression.Call Expression.Call Expression.Call Expression.Call Method

定義

MethodCallExpression を作成します。Creates a MethodCallExpression.

オーバーロード

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

5 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes five arguments.

Call(Expression, MethodInfo, Expression, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes three arguments.

Call(Type, String, Type[], Expression[]) Call(Type, String, Type[], Expression[]) Call(Type, String, Type[], Expression[])

適切なファクトリ メソッドを呼び出すことにより、MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method by calling the appropriate factory method.

Call(MethodInfo, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes three arguments.

Call(Expression, String, Type[], Expression[]) Call(Expression, String, Type[], Expression[]) Call(Expression, String, Type[], Expression[]) Call(Expression, String, Type[], Expression[])

適切なファクトリ メソッドを呼び出すことにより、インスタンス メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method by calling the appropriate factory method.

Call(Expression, MethodInfo, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression)

2 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes two arguments.

Call(MethodInfo, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression)

4 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes four arguments.

Call(Expression, MethodInfo, Expression[]) Call(Expression, MethodInfo, Expression[]) Call(Expression, MethodInfo, Expression[]) Call(Expression, MethodInfo, Expression[])

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes arguments.

Call(Expression, MethodInfo, IEnumerable<Expression>) Call(Expression, MethodInfo, IEnumerable<Expression>) Call(Expression, MethodInfo, IEnumerable<Expression>) Call(Expression, MethodInfo, IEnumerable<Expression>)

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes arguments.

Call(MethodInfo, Expression[]) Call(MethodInfo, Expression[]) Call(MethodInfo, Expression[]) Call(MethodInfo, Expression[])

引数を持つ static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that has arguments.

Call(MethodInfo, Expression) Call(MethodInfo, Expression) Call(MethodInfo, Expression) Call(MethodInfo, Expression)

1 つの引数を受け取る MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that takes one argument.

Call(MethodInfo, IEnumerable<Expression>) Call(MethodInfo, IEnumerable<Expression>) Call(MethodInfo, IEnumerable<Expression>) Call(MethodInfo, IEnumerable<Expression>)

static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method.

Call(Expression, MethodInfo) Call(Expression, MethodInfo) Call(Expression, MethodInfo) Call(Expression, MethodInfo)

引数を受け取らないメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes no arguments.

Call(MethodInfo, Expression, Expression) Call(MethodInfo, Expression, Expression) Call(MethodInfo, Expression, Expression) Call(MethodInfo, Expression, Expression)

2 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes two arguments.

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

5 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes five arguments.

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 MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

arg1
Expression Expression Expression Expression

2 番目の引数を表す ExpressionThe Expression that represents the second argument.

arg2
Expression Expression Expression Expression

3 番目の引数を表す ExpressionThe Expression that represents the third argument.

arg3
Expression Expression Expression Expression

4 番目の引数を表す ExpressionThe Expression that represents the fourth argument.

arg4
Expression Expression Expression Expression

5 番目の引数を表す ExpressionThe Expression that represents the fifth argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

例外

Call(Expression, MethodInfo, Expression, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes three arguments.

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 Expression Expression

インスタンス呼び出しのインスタンスを指定する ExpressionAn Expression that specifies the instance for an instance call. static (Visual Basic では Shared) メソッドの場合は null を渡します。(pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

呼び出し先のメソッドを表す MethodInfoThe MethodInfo that represents the target method.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

arg1
Expression Expression Expression Expression

2 番目の引数を表す ExpressionThe Expression that represents the second argument.

arg2
Expression Expression Expression Expression

3 番目の引数を表す ExpressionThe Expression that represents the third argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Call(Type, String, Type[], Expression[]) Call(Type, String, Type[], Expression[]) Call(Type, String, Type[], Expression[])

適切なファクトリ メソッドを呼び出すことにより、MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method by calling the appropriate factory method.

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);
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression

パラメーター

type
Type Type Type Type

指定した static (Visual Basic では Shared) メソッドが格納された型です。The type that contains the specified static (Shared in Visual Basic) method.

methodName
String String String String

メソッドの名前。The name of the method.

typeArguments
Type[]

ジェネリック メソッドの型パラメーターを指定する Type オブジェクトの配列。An array of Type objects that specify the type parameters of the generic method. methodName が非ジェネリック メソッドを指定する場合、この引数は null にします。This argument should be null when methodName specifies a non-generic method.

arguments
Expression[]

メソッドへの引数を表す Expression オブジェクトの配列。An array of Expression objects that represent the arguments to the method.

戻り値

Call と等しい NodeType プロパティ、指定した static (Visual Basic では Shared) メソッドを表す MethodInfo に設定された Method プロパティ、および指定した引数に設定された Arguments プロパティを含む MethodCallExpressionA MethodCallExpression that has the NodeType property equal to Call, the Method property set to the MethodInfo that represents the specified static (Shared in Visual Basic) method, and the Arguments property set to the specified arguments.

例外

type または methodNamenull です。type or methodName is null.

名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致するメソッドが、type またはその基本型で見つかりません。No method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in type or its base types.

または-or- 名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致する複数のメソッドが、type またはその基本型で見つかりました。More than one method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in type or its base types.

注釈

TypeプロパティMethodCallExpressionがで表されるメソッドの戻り値の型と等しいmethodNameします。The Type property of the resulting MethodCallExpression is equal to the return type of the method denoted by methodName. Object プロパティが null である。The Object property is null.

Call(MethodInfo, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes three arguments.

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 MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

arg1
Expression Expression Expression Expression

2 番目の引数を表す ExpressionThe Expression that represents the second argument.

arg2
Expression Expression Expression Expression

3 番目の引数を表す ExpressionThe Expression that represents the third argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

例外

Call(Expression, String, Type[], Expression[]) Call(Expression, String, Type[], Expression[]) Call(Expression, String, Type[], Expression[]) Call(Expression, String, Type[], Expression[])

適切なファクトリ メソッドを呼び出すことにより、インスタンス メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method by calling the appropriate factory method.

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);
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 Expression Expression

特定のメソッドの Expression プロパティ値が検索される TypeAn Expression whose Type property value will be searched for a specific method.

methodName
String String String String

メソッドの名前。The name of the method.

typeArguments
Type[]

ジェネリック メソッドの型パラメーターを指定する Type オブジェクトの配列。An array of Type objects that specify the type parameters of the generic method. methodName が非ジェネリック メソッドを指定する場合、この引数は null にします。This argument should be null when methodName specifies a non-generic method.

arguments
Expression[]

メソッドへの引数を表す Expression オブジェクトの配列。An array of Expression objects that represents the arguments to the method.

戻り値

Call と等しい NodeType プロパティ、instance と等しい Object プロパティ、指定したインスタンス メソッドを表す MethodInfo に設定された Method、および指定した引数に設定された Arguments を含む MethodCallExpressionA MethodCallExpression that has the NodeType property equal to Call, the Object property equal to instance, Method set to the MethodInfo that represents the specified instance method, and Arguments set to the specified arguments.

例外

instance または methodNamenull です。instance or methodName is null.

名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致するメソッドが、instance.Type またはその基本型で見つかりません。No method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in instance.Type or its base types.

または-or- 名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致する複数のメソッドが、instance.Type またはその基本型で見つかりました。More than one method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in instance.Type or its base types.

注釈

TypeプロパティMethodCallExpressionがで表されるメソッドの戻り値の型と等しいmethodNameします。The Type property of the resulting MethodCallExpression is equal to the return type of the method denoted by methodName.

Call(Expression, MethodInfo, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression) Call(Expression, MethodInfo, Expression, Expression)

2 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes two arguments.

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 Expression Expression

インスタンス呼び出しのインスタンスを指定する ExpressionAn Expression that specifies the instance for an instance call. static (Visual Basic では Shared) メソッドの場合は null を渡します。(pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

呼び出し先のメソッドを表す MethodInfoThe MethodInfo that represents the target method.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

arg1
Expression Expression Expression Expression

2 番目の引数を表す ExpressionThe Expression that represents the second argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

次のコード例では、2 つの引数を持つインスタンス メソッドを呼び出す式を作成する方法を示します。The following code example shows how to create an expression that calls an instance method that has two arguments.

// 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) Call(MethodInfo, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression) Call(MethodInfo, Expression, Expression, Expression, Expression)

4 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes four arguments.

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 MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

arg1
Expression Expression Expression Expression

2 番目の引数を表す ExpressionThe Expression that represents the second argument.

arg2
Expression Expression Expression Expression

3 番目の引数を表す ExpressionThe Expression that represents the third argument.

arg3
Expression Expression Expression Expression

4 番目の引数を表す ExpressionThe Expression that represents the fourth argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

例外

Call(Expression, MethodInfo, Expression[]) Call(Expression, MethodInfo, Expression[]) Call(Expression, MethodInfo, Expression[]) Call(Expression, MethodInfo, Expression[])

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes arguments.

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);
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 Expression Expression

インスタンス メソッドの呼び出しのインスタンスを指定する Expressionnull (Visual Basic では static) メソッドに Shared を渡します。An Expression that specifies the instance for an instance method call (pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arguments
Expression[]

Expression コレクションへの読み込みに使用する Arguments オブジェクトの配列。An array of Expression objects to use to populate the Arguments collection.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された CallObject、および Method の各プロパティを含む ArgumentsA MethodCallExpression that has the NodeType property equal to Call and the Object, Method, and Arguments properties set to the specified values.

例外

methodnullです。method is null.

または-or- instancenull で、method はインスタンス メソッドを表します。instance is null and method represents an instance method.

または-or- argumentsnull ではなく、その要素の 1 つ以上が null です。arguments is not null and one or more of its elements is null.

instance.Type は、method の表すメソッドの宣言型に割り当てることができません。instance.Type is not assignable to the declaring type of the method represented by method.

または-or- arguments の要素の数が、method の表すメソッドのパラメーターの数と一致しません。The number of elements in arguments does not equal the number of parameters for the method represented by method.

または-or- arguments の 1 つ以上の要素が、method の表すメソッドの対応するパラメーターに割り当てることができません。One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

注釈

呼び出しを表す、 static (Shared Visual Basic で) メソッドを渡しますnullinstanceパラメーターが、このメソッドを呼び出すときに呼び出したりCall代わりにします。To represent a call to a static (Shared in Visual Basic) method, pass in null for the instance parameter when you call this method, or call Call instead.

場合methodインスタンス メソッドを表す、Typeプロパティのinstanceによって表されるメソッドの宣言型に代入する必要がありますmethodします。If method represents an instance method, the Type property of instance must be assignable to the declaring type of the method represented by method.

場合argumentsないnull、によって表されるメソッドのパラメーターの数と同じ数の要素がありますmethodします。If arguments is not null, it must have the same number of elements as the number of parameters for the method represented by method. 内の各要素arguments必要がありますnullの対応するパラメーターに割り当てることである必要がありますmethod、場合によっては、後を引用符で囲むします。Each element in arguments must not be null and must be assignable to the corresponding parameter of method, possibly after quoting.

注意

要素は、対応するメソッドのパラメーターが型の場合にのみクォートはExpressionします。An element will be quoted only if the corresponding method parameter is of type Expression. 要素にラップする手段を引用符で囲む、Quoteノード。Quoting means the element is wrapped in a Quote node. 見つかったノードが、UnaryExpressionOperandプロパティは、要素のargumentsします。The resulting node is a UnaryExpression whose Operand property is the element of arguments.

ArgumentsプロパティMethodCallExpression空場合argumentsnullThe Arguments property of the resulting MethodCallExpression is empty if arguments is null. それ以外の場合と同じ要素が含まれているarguments、一部の引用符で囲まれたする可能性があります。Otherwise, it contains the same elements as arguments, some of which may be quoted.

TypeプロパティMethodCallExpressionはによって表されるメソッドの戻り値の型と等しくmethodします。The Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method.

Call(Expression, MethodInfo, IEnumerable<Expression>) Call(Expression, MethodInfo, IEnumerable<Expression>) Call(Expression, MethodInfo, IEnumerable<Expression>) Call(Expression, MethodInfo, IEnumerable<Expression>)

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes 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 Expression Expression

Expression プロパティを等しく設定する Object (null (Visual Basic では static) メソッドに Shared を渡します)。An Expression to set the Object property equal to (pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arguments
IEnumerable<Expression>

IEnumerable<T> コレクションへの読み込みに使用する Expression オブジェクトを含む ArgumentsAn IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された CallObject、および Method の各プロパティを含む ArgumentsA MethodCallExpression that has the NodeType property equal to Call and the Object, Method, and Arguments properties set to the specified values.

例外

methodnullです。method is null.

または-or- instancenull で、method はインスタンス メソッドを表します。instance is null and method represents an instance method.

instance.Type は、method の表すメソッドの宣言型に割り当てることができません。instance.Type is not assignable to the declaring type of the method represented by method.

または-or- arguments の要素の数が、method の表すメソッドのパラメーターの数と一致しません。The number of elements in arguments does not equal the number of parameters for the method represented by method.

または-or- arguments の 1 つ以上の要素が、method の表すメソッドの対応するパラメーターに割り当てることができません。One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

注釈

呼び出しを表す、 static (Shared Visual Basic で) メソッドを渡しますnullinstanceパラメーターが、このメソッドを呼び出すときに呼び出したりCall代わりにします。To represent a call to a static (Shared in Visual Basic) method, pass in null for the instance parameter when you call this method, or call Call instead.

場合methodインスタンス メソッドを表す、Typeプロパティのinstanceによって表されるメソッドの宣言型に代入する必要がありますmethodします。If method represents an instance method, the Type property of instance must be assignable to the declaring type of the method represented by method.

場合argumentsないnull、によって表されるメソッドのパラメーターの数と同じ数の要素がありますmethodします。If arguments is not null, it must have the same number of elements as the number of parameters for the method represented by method. 内の各要素arguments必要がありますnullの対応するパラメーターに割り当てることである必要がありますmethod、場合によっては、後を引用符で囲むします。Each element in arguments must not be null and must be assignable to the corresponding parameter of method, possibly after quoting.

注意

要素は、対応するメソッドのパラメーターが型の場合にのみクォートはExpressionします。An element will be quoted only if the corresponding method parameter is of type Expression. 要素にラップする手段を引用符で囲む、Quoteノード。Quoting means the element is wrapped in a Quote node. 見つかったノードが、UnaryExpressionOperandプロパティは、要素のargumentsします。The resulting node is a UnaryExpression whose Operand property is the element of arguments.

ArgumentsプロパティMethodCallExpression空場合argumentsnullThe Arguments property of the resulting MethodCallExpression is empty if arguments is null. それ以外の場合と同じ要素が含まれているarguments、一部の引用符で囲まれたする可能性があります。Otherwise, it contains the same elements as arguments, some of which may be quoted.

TypeプロパティMethodCallExpressionはによって表されるメソッドの戻り値の型と等しくmethodします。The Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method.

Call(MethodInfo, Expression[]) Call(MethodInfo, Expression[]) Call(MethodInfo, Expression[]) Call(MethodInfo, Expression[])

引数を持つ static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that has arguments.

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);
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 MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する static (Visual Basic では Shared) メソッドを表す MethodA MethodInfo that represents a static (Shared in Visual Basic) method to set the Method property equal to.

arguments
Expression[]

Expression コレクションへの読み込みに使用する Arguments オブジェクトの配列。An array of Expression objects to use to populate the Arguments collection.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Method プロパティを含む ArgumentsA MethodCallExpression that has the NodeType property equal to Call and the Method and Arguments properties set to the specified values.

例外

arguments の要素の数が、method の表すメソッドのパラメーターの数と一致しません。The number of elements in arguments does not equal the number of parameters for the method represented by method.

または-or- arguments の 1 つ以上の要素が、method の表すメソッドの対応するパラメーターに割り当てることができません。One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

注釈

場合argumentsないnull、によって表されるメソッドのパラメーターの数と同じ数の要素がありますmethodします。If arguments is not null, it must have the same number of elements as the number of parameters for the method represented by method. 内の各要素arguments必要がありますnullの対応するパラメーターに割り当てることである必要がありますmethod、場合によっては、後を引用符で囲むします。Each element in arguments must not be null and must be assignable to the corresponding parameter of method, possibly after quoting.

注意

要素は、対応するメソッドのパラメーターが型の場合にのみクォートはExpressionします。An element will be quoted only if the corresponding method parameter is of type Expression. 要素にラップする手段を引用符で囲む、Quoteノード。Quoting means the element is wrapped in a Quote node. 見つかったノードが、UnaryExpressionOperandプロパティは、要素のargumentsします。The resulting node is a UnaryExpression whose Operand property is the element of arguments.

ArgumentsプロパティMethodCallExpression空場合argumentsnullThe Arguments property of the resulting MethodCallExpression is empty if arguments is null. それ以外の場合と同じ要素が含まれているarguments、一部の引用符で囲まれたする可能性があります。Otherwise, it contains the same elements as arguments, some of which may be quoted.

TypeプロパティMethodCallExpressionはによって表されるメソッドの戻り値の型と等しくmethodします。The Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method. Object プロパティが null である。The Object property is null.

Call(MethodInfo, Expression) Call(MethodInfo, Expression) Call(MethodInfo, Expression) Call(MethodInfo, Expression)

1 つの引数を受け取る MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that takes one argument.

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 MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

例外

次の例を呼び出す式を作成する方法、 static (Shared Visual basic) を 1 つの引数を受け取るメソッド。The following example demonstrates how to create an expression that calls a static (Shared in Visual Basic) method that takes one argument.

// 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>) Call(MethodInfo, IEnumerable<Expression>) Call(MethodInfo, IEnumerable<Expression>) Call(MethodInfo, IEnumerable<Expression>)

static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method.

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 MethodInfo MethodInfo

呼び出し先のメソッドを表す MethodInfoThe MethodInfo that represents the target method.

arguments
IEnumerable<Expression>

呼び出しの引数を表す Expression のコレクション。A collection of Expression that represents the call arguments.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Call(Expression, MethodInfo) Call(Expression, MethodInfo) Call(Expression, MethodInfo) Call(Expression, MethodInfo)

引数を受け取らないメソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a method that takes no arguments.

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 Expression Expression

インスタンス メソッドの呼び出しのインスタンスを指定する Expressionnull (Visual Basic では static) メソッドに Shared を渡します。An Expression that specifies the instance for an instance method call (pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

例外

methodnullです。method is null.

または-or- instancenull で、method はインスタンス メソッドを表します。instance is null and method represents an instance method.

instance.Type は、method の表すメソッドの宣言型に割り当てることができません。instance.Type is not assignable to the declaring type of the method represented by method.

次のコード例では、引数なしのメソッドを呼び出す式を作成する方法を示します。The following code example shows how to create an expression that calls a method without arguments.

// 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

注釈

呼び出しを表す、 static (Shared Visual Basic で) メソッドを渡しますnullinstanceパラメーターがこのメソッドを呼び出すとします。To represent a call to a static (Shared in Visual Basic) method, pass in null for the instance parameter when you call this method.

場合methodインスタンス メソッドを表す、Typeプロパティのinstanceによって表されるメソッドの宣言型に代入する必要がありますmethodします。If method represents an instance method, the Type property of instance must be assignable to the declaring type of the method represented by method.

ArgumentsプロパティMethodCallExpressionが空です。The Arguments property of the resulting MethodCallExpression is empty. Typeプロパティがによって表されるメソッドの戻り値の型と等しいmethodします。The Type property is equal to the return type of the method represented by method.

Call(MethodInfo, Expression, Expression) Call(MethodInfo, Expression, Expression) Call(MethodInfo, Expression, Expression) Call(MethodInfo, Expression, Expression)

2 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。Creates a MethodCallExpression that represents a call to a static method that takes two arguments.

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 MethodInfo MethodInfo

MethodInfo プロパティを等しく設定する MethodA MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

1 番目の引数を表す ExpressionThe Expression that represents the first argument.

arg1
Expression Expression Expression Expression

2 番目の引数を表す ExpressionThe Expression that represents the second argument.

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む MethodA MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

例外

適用対象