다음을 통해 공유


Expression.Call 메서드

정의

MethodCallExpression을 만듭니다.

오버로드

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

5개 인수를 받는 static 메서드에 대한 호출을 나타내는 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개 인수를 받는 static 메서드에 대한 호출을 나타내는 MethodCallExpression을 만듭니다.

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

적합한 팩터리 메서드를 호출하여 메서드를 호출하는 동작을 나타내는 MethodCallExpression을 만듭니다.

Call(Expression, MethodInfo, Expression, Expression)

2개 인수를 받는 메서드에 대한 호출을 나타내는 MethodCallExpression을 만듭니다.

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

4개 인수를 받는 static 메서드에 대한 호출을 나타내는 MethodCallExpression을 만듭니다.

Call(Expression, MethodInfo, Expression[])

인수를 받는 메서드에 대한 호출을 나타내는 MethodCallExpression을 만듭니다.

Call(Expression, MethodInfo, IEnumerable<Expression>)

인수를 받는 메서드에 대한 호출을 나타내는 MethodCallExpression을 만듭니다.

Call(MethodInfo, Expression[])

인수가 있는 MethodCallExpression(Visual Basic에서는 static) 메서드에 대한 호출을 나타내는 Shared을 만듭니다.

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개 인수를 받는 static 메서드에 대한 호출을 나타내는 MethodCallExpression을 만듭니다.

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

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs

5개 인수를 받는 static 메서드에 대한 호출을 나타내는 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

첫 번째 인수를 나타내는 Expression입니다.

arg1
Expression

두 번째 인수를 나타내는 Expression입니다.

arg2
Expression

세 번째 인수를 나타내는 Expression입니다.

arg3
Expression

네 번째 인수를 나타내는 Expression입니다.

arg4
Expression

다섯 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예외

method가 null입니다.

적용 대상

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

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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

첫 번째 인수를 나타내는 Expression입니다.

arg1
Expression

두 번째 인수를 나타내는 Expression입니다.

arg2
Expression

세 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

적용 대상

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

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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 개체 배열입니다.

반환

MethodCallExpression 속성이 NodeType이고 Call 속성이 지정된 Method(Visual Basic에서는 MethodInfo) 메서드를 나타내는 static로 설정되고 Shared 속성이 지정된 인수로 설정된 Arguments입니다.

예외

type 또는 methodNamenull인 경우

methodName 또는 해당 기본 형식에 이름이 typeArguments이고 형식 매개 변수가 arguments와 일치하고 매개 변수 형식이 type와 일치하는 메서드가 없는 경우

또는

methodName 또는 해당 기본 형식에 이름이 typeArguments이고 형식 매개 변수가 arguments와 일치하고 매개 변수 형식이 type와 일치하는 메서드가 둘 이상 있는 경우

설명

결과 MethodCallExpression 의 속성은 Type 로 표시된 메서드의 반환 형식과 methodName같습니다. Object 속성은 null입니다.

적용 대상

Call(MethodInfo, Expression, Expression, Expression)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs

3개 인수를 받는 static 메서드에 대한 호출을 나타내는 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

첫 번째 인수를 나타내는 Expression입니다.

arg1
Expression

두 번째 인수를 나타내는 Expression입니다.

arg2
Expression

세 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예외

method가 null입니다.

적용 대상

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

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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 개체 배열입니다.

반환

MethodCallExpression 속성이 NodeType이고, Call 속성이 Object이고, instance가 지정된 인스턴스 메서드를 나타내는 Method로 설정되고 MethodInfo가 지정된 인수로 설정된 Arguments입니다.

예외

instance 또는 methodNamenull인 경우

methodName.Type 또는 해당 기본 형식에 이름이 typeArguments이고 형식 매개 변수가 arguments와 일치하고 매개 변수 형식이 instance와 일치하는 메서드가 없는 경우

또는

methodName.Type 또는 해당 기본 형식에 이름이 typeArguments이고 형식 매개 변수가 arguments와 일치하고 매개 변수 형식이 instance와 일치하는 메서드가 둘 이상 있는 경우

설명

결과 MethodCallExpression 의 속성은 Type 로 표시된 메서드의 반환 형식과 methodName같습니다.

적용 대상

Call(Expression, MethodInfo, Expression, Expression)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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

첫 번째 인수를 나타내는 Expression입니다.

arg1
Expression

두 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예제

다음 코드 예제에서는 두 인수가 있는 instance 메서드를 호출하는 식을 만드는 방법을 보여 있습니다.

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

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs

4개 인수를 받는 static 메서드에 대한 호출을 나타내는 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

첫 번째 인수를 나타내는 Expression입니다.

arg1
Expression

두 번째 인수를 나타내는 Expression입니다.

arg2
Expression

세 번째 인수를 나타내는 Expression입니다.

arg3
Expression

네 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예외

method가 null입니다.

적용 대상

Call(Expression, MethodInfo, Expression[])

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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

인스턴스 메서드 호출에 대한 인스턴스를 지정하는 Expression이며 null (Visual Basic의 경우 static) 메서드에 대해 Shared를 전달합니다.

method
MethodInfo

MethodInfo 속성에 설정할 Method입니다.

arguments
Expression[]

Expression 컬렉션을 채우는 데 사용할 Arguments 개체의 배열입니다.

반환

MethodCallExpression 속성이 NodeType이고 Call, ObjectMethod 속성이 지정된 값으로 설정된 Arguments입니다.

예외

methodnull입니다.

또는

instancenull이고 method가 인스턴스 메서드를 나타내는 경우

또는

argumentsnull이 아니고 하나 이상의 해당 요소가 null인 경우

instance.Type을 method로 나타내는 메서드의 선언 형식에 할당할 수 없는 경우

또는

arguments의 요소 수가 method로 나타내는 메서드의 매개 변수 수와 같지 않은 경우

또는

arguments의 요소 중 하나 이상을 method로 나타내는 메서드의 해당 매개 변수에 할당할 수 없는 경우

설명

(SharedVisual Basic의 경우) 메서드에 대한 호출을 static 나타내려면 이 메서드를 instance 호출할 때 매개 변수에 대해 를 전달 null 하거나 대신 를 호출 Call 합니다.

가 instance 메서드를 나타내는 경우 method 의 속성은 Type 로 표현되는 메서드의 선언 형식에 method할당할 instance 수 있어야 합니다.

가 이 아닌 null경우 arguments 가 나타내는 method메서드에 대한 매개 변수 수와 동일한 수의 요소가 있어야 합니다. 의 arguments 각 요소는 이 아니 null 어야 하며 따옴표로 묶은 후 의 method해당 매개 변수에 할당할 수 있어야 합니다.

참고

해당 메서드 매개 변수가 형식 Expression인 경우에만 요소가 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 OperandUnaryExpressionarguments요소인 입니다.

Arguments 이면 arguments 결과 MethodCallExpression 의 속성이 비어 있습니다null. 그렇지 않으면 와 동일한 요소가 포함되며, 그 중 일부는 따옴표로 arguments묶일 수 있습니다.

Type 결과 MethodCallExpression 의 속성은 가 나타내는 메서드의 반환 형식과 method같습니다.

적용 대상

Call(Expression, MethodInfo, IEnumerable<Expression>)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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이고 Call, ObjectMethod 속성이 지정된 값으로 설정된 Arguments입니다.

예외

methodnull입니다.

또는

instancenull이고 method가 인스턴스 메서드를 나타내는 경우

instance.Type을 method로 나타내는 메서드의 선언 형식에 할당할 수 없는 경우

또는

arguments의 요소 수가 method로 나타내는 메서드의 매개 변수 수와 같지 않은 경우

또는

arguments의 요소 중 하나 이상을 method로 나타내는 메서드의 해당 매개 변수에 할당할 수 없는 경우

설명

(SharedVisual Basic의 경우) 메서드에 대한 호출을 static 나타내려면 이 메서드를 instance 호출할 때 매개 변수에 대해 를 전달 null 하거나 대신 를 호출 Call 합니다.

가 instance 메서드를 나타내는 경우 method 의 속성은 Type 로 표현되는 메서드의 선언 형식에 method할당할 instance 수 있어야 합니다.

가 이 아닌 null경우 arguments 가 나타내는 method메서드에 대한 매개 변수 수와 동일한 수의 요소가 있어야 합니다. 의 arguments 각 요소는 이 아니 null 어야 하며 따옴표로 묶은 후 의 method해당 매개 변수에 할당할 수 있어야 합니다.

참고

해당 메서드 매개 변수가 형식 Expression인 경우에만 요소가 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 OperandUnaryExpressionarguments요소인 입니다.

Arguments 이면 arguments 결과 MethodCallExpression 의 속성이 비어 있습니다null. 그렇지 않으면 와 동일한 요소가 포함되며, 그 중 일부는 따옴표로 arguments묶일 수 있습니다.

Type 결과 MethodCallExpression 의 속성은 가 나타내는 메서드의 반환 형식과 method같습니다.

적용 대상

Call(MethodInfo, Expression[])

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs

인수가 있는 MethodCallExpression(Visual Basic에서는 static) 메서드에 대한 호출을 나타내는 Shared을 만듭니다.

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이고 CallMethod 속성이 지정된 값으로 설정된 Arguments입니다.

예외

method이(가) null인 경우

arguments의 요소 수가 method로 나타내는 메서드의 매개 변수 수와 같지 않은 경우

또는

arguments의 요소 중 하나 이상을 method로 나타내는 메서드의 해당 매개 변수에 할당할 수 없는 경우

설명

가 이 아닌 null경우 arguments 가 나타내는 method메서드에 대한 매개 변수 수와 동일한 수의 요소가 있어야 합니다. 의 arguments 각 요소는 이 아니 null 어야 하며 따옴표로 묶은 후 의 method해당 매개 변수에 할당할 수 있어야 합니다.

참고

해당 메서드 매개 변수가 형식 Expression인 경우에만 요소가 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 OperandUnaryExpressionarguments요소인 입니다.

Arguments 이면 arguments 결과 MethodCallExpression 의 속성이 비어 있습니다null. 그렇지 않으면 와 동일한 요소가 포함되며, 그 중 일부는 따옴표로 arguments묶일 수 있습니다.

Type 결과 MethodCallExpression 의 속성은 가 나타내는 메서드의 반환 형식과 method같습니다. Object 속성은 null입니다.

적용 대상

Call(MethodInfo, Expression)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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

첫 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예외

method가 null입니다.

예제

다음 예제에서는 호출 하는 식을 만드는 방법을 보여 줍니다는 static (Shared Visual Basic에서) 하나의 인수를 사용 하는 메서드.

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

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

적용 대상

Call(Expression, MethodInfo)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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

인스턴스 메서드 호출에 대한 인스턴스를 지정하는 Expression이며 null (Visual Basic의 경우 static) 메서드에 대해 Shared를 전달합니다.

method
MethodInfo

MethodInfo 속성에 설정할 Method입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예외

method이(가) null인 경우

또는

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 합니다.

가 instance 메서드를 나타내는 경우 method 의 속성은 Type 로 표현되는 메서드의 선언 형식에 method할당할 instance 수 있어야 합니다.

Arguments 결과 MethodCallExpression 의 속성이 비어 있습니다. 속성이 Type 나타내는 method메서드의 반환 형식과 같습니다.

적용 대상

Call(MethodInfo, Expression, Expression)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs

2개 인수를 받는 static 메서드에 대한 호출을 나타내는 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

첫 번째 인수를 나타내는 Expression입니다.

arg1
Expression

두 번째 인수를 나타내는 Expression입니다.

반환

MethodCallExpression 속성이 NodeType이고 CallObject 속성이 지정된 값으로 설정된 Method입니다.

예외

method가 null입니다.

적용 대상