Expression.Call メソッド

定義

MethodCallExpression を作成します。

オーバーロード

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

5 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

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

3 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

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

適切なファクトリ メソッドを呼び出すことにより、MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。

Call(MethodInfo, Expression, Expression, Expression)

3 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

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

適切なファクトリ メソッドを呼び出すことにより、インスタンス メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, Expression, Expression)

2 つの引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

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

4 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, Expression[])

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo, IEnumerable<Expression>)

引数を受け取るメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression[])

引数を持つ static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression)

1 つの引数を受け取る MethodCallExpression (Visual Basic では static) メソッドへの呼び出しを表す Shared を作成します。

Call(MethodInfo, IEnumerable<Expression>)

static (Visual Basic では Shared) メソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(Expression, MethodInfo)

引数を受け取らないメソッドへの呼び出しを表す MethodCallExpression を作成します。

Call(MethodInfo, Expression, Expression)

2 つの引数を受け取る静的メソッドへの呼び出しを表す MethodCallExpression を作成します。

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

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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

適切なファクトリ メソッドを呼び出すことにより、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 または methodNamenull です。

名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致するメソッドが、type またはその基本型で見つかりません。

- または -

名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致する複数のメソッドが、type またはその基本型で見つかりました。

注釈

結果MethodCallExpressionの の プロパティはType、 によって示されるメソッドの戻り値の型とmethodName等しくなります。 Object プロパティが null です。

適用対象

Call(MethodInfo, Expression, Expression, Expression)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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

適切なファクトリ メソッドを呼び出すことにより、インスタンス メソッドへの呼び出しを表す 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 または methodNamenull です。

名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致するメソッドが、instance.Type またはその基本型で見つかりません。

- または -

名前が methodName で、型パラメーターが typeArguments と一致し、パラメーターの型が arguments と一致する複数のメソッドが、instance.Type またはその基本型で見つかりました。

注釈

結果MethodCallExpressionの の プロパティはType、 によって示されるメソッドの戻り値の型とmethodName等しくなります。

適用対象

Call(Expression, MethodInfo, Expression, Expression)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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

引数を受け取るメソッドへの呼び出しを表す 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

インスタンス メソッドの呼び出しのインスタンスを指定する Expressionnull (Visual Basic では static) メソッドに Shared を渡します。

method
MethodInfo

MethodInfo プロパティを等しく設定する Method

arguments
Expression[]

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

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された CallObject、および Method の各プロパティを含む Arguments

例外

methodnullです。

- または -

instancenull で、method はインスタンス メソッドを表します。

- または -

argumentsnull ではなく、その要素の 1 つ以上が null です。

instance.Type は、method の表すメソッドの宣言型に割り当てることができません。

- または -

arguments の要素の数が、method の表すメソッドのパラメーターの数と一致しません。

- または -

arguments の 1 つ以上の要素が、method の表すメソッドの対応するパラメーターに割り当てることができません。

注釈

(SharedVisual 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.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

引数を受け取るメソッドへの呼び出しを表す 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 プロパティと、指定した値に設定された CallObject、および Method の各プロパティを含む Arguments

例外

methodnullです。

- または -

instancenull で、method はインスタンス メソッドを表します。

instance.Type は、method の表すメソッドの宣言型に割り当てることができません。

- または -

arguments の要素の数が、method の表すメソッドのパラメーターの数と一致しません。

- または -

arguments の 1 つ以上の要素が、method の表すメソッドの対応するパラメーターに割り当てることができません。

注釈

(SharedVisual 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[])

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

引数を持つ 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

例外

methodnullです。

arguments の要素の数が、method の表すメソッドのパラメーターの数と一致しません。

- または -

arguments の 1 つ以上の要素が、method の表すメソッドの対応するパラメーターに割り当てることができません。

注釈

が でないnull場合argumentsは、 でmethod表されるメソッドのパラメーターの数と同じ数の要素を持つ必要があります。 内のarguments各要素は、 null ではなく、引用符で囲んでから、 の対応するパラメーターmethodに割り当て可能である必要があります。

Note

要素は、対応するメソッド パラメーターが 型 Expressionの場合にのみ引用符で囲まれます。 引用符は、要素がノードに Quote ラップされていることを意味します。 結果のノードは、 UnaryExpression プロパティ Operand が の arguments要素である です。

Arguments の場合arguments、結果の MethodCallExpression の プロパティは空ですnull。 それ以外の場合は、 と同じ要素 argumentsが含まれます。その一部は引用符で囲まれる場合があります。

結果MethodCallExpressionの の プロパティはType、 でmethod表されるメソッドの戻り値の型と等しくなります。 Object プロパティが null です。

適用対象

Call(MethodInfo, Expression)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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

引数を受け取らないメソッドへの呼び出しを表す 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

インスタンス メソッドの呼び出しのインスタンスを指定する Expressionnull (Visual Basic では static) メソッドに Shared を渡します。

method
MethodInfo

MethodInfo プロパティを等しく設定する Method

戻り値

MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Method

例外

methodnullです。

- または -

instancenull で、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

注釈

(SharedVisual Basic では) メソッドの呼び出しをstatic表すには、このメソッドを呼び出すときに パラメーターに instance を渡しますnull

がインスタンス メソッドを表す場合method、 の instance プロパティはType、 でmethod表されるメソッドの宣言型に割り当て可能である必要があります。

Arguments結果MethodCallExpressionの の プロパティは空です。 プロパティは Type 、 で method表されるメソッドの戻り値の型と等しくなります。

適用対象

Call(MethodInfo, Expression, Expression)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

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 です。

適用対象