Expression.Call 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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이고 Call 및 Object 속성이 지정된 값으로 설정된 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이고 Call 및 Object 속성이 지정된 값으로 설정된 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
또는 methodName
가 null
인 경우
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이고 Call 및 Object 속성이 지정된 값으로 설정된 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
또는 methodName
가 null
인 경우
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이고 Call 및 Object 속성이 지정된 값으로 설정된 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이고 Call 및 Object 속성이 지정된 값으로 설정된 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, Object 및 Method 속성이 지정된 값으로 설정된 Arguments입니다.
예외
method
은 null
입니다.
또는
instance
가 null
이고 method
가 인스턴스 메서드를 나타내는 경우
또는
arguments
가 null
이 아니고 하나 이상의 해당 요소가 null
인 경우
instance
.Type을 method
로 나타내는 메서드의 선언 형식에 할당할 수 없는 경우
또는
arguments
의 요소 수가 method
로 나타내는 메서드의 매개 변수 수와 같지 않은 경우
또는
arguments
의 요소 중 하나 이상을 method
로 나타내는 메서드의 해당 매개 변수에 할당할 수 없는 경우
설명
(Shared
Visual Basic의 경우) 메서드에 대한 호출을 static
나타내려면 이 메서드를 instance
호출할 때 매개 변수에 대해 를 전달 null
하거나 대신 를 호출 Call 합니다.
가 instance 메서드를 나타내는 경우 method
의 속성은 Type 로 표현되는 메서드의 선언 형식에 method
할당할 instance
수 있어야 합니다.
가 이 아닌 null
경우 arguments
가 나타내는 method
메서드에 대한 매개 변수 수와 동일한 수의 요소가 있어야 합니다. 의 arguments
각 요소는 이 아니 null
어야 하며 따옴표로 묶은 후 의 method
해당 매개 변수에 할당할 수 있어야 합니다.
참고
해당 메서드 매개 변수가 형식 Expression인 경우에만 요소가 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 Operand 이 UnaryExpression 의 arguments
요소인 입니다.
가 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, Object 및 Method 속성이 지정된 값으로 설정된 Arguments입니다.
예외
instance
.Type을 method
로 나타내는 메서드의 선언 형식에 할당할 수 없는 경우
또는
arguments
의 요소 수가 method
로 나타내는 메서드의 매개 변수 수와 같지 않은 경우
또는
arguments
의 요소 중 하나 이상을 method
로 나타내는 메서드의 해당 매개 변수에 할당할 수 없는 경우
설명
(Shared
Visual Basic의 경우) 메서드에 대한 호출을 static
나타내려면 이 메서드를 instance
호출할 때 매개 변수에 대해 를 전달 null
하거나 대신 를 호출 Call 합니다.
가 instance 메서드를 나타내는 경우 method
의 속성은 Type 로 표현되는 메서드의 선언 형식에 method
할당할 instance
수 있어야 합니다.
가 이 아닌 null
경우 arguments
가 나타내는 method
메서드에 대한 매개 변수 수와 동일한 수의 요소가 있어야 합니다. 의 arguments
각 요소는 이 아니 null
어야 하며 따옴표로 묶은 후 의 method
해당 매개 변수에 할당할 수 있어야 합니다.
참고
해당 메서드 매개 변수가 형식 Expression인 경우에만 요소가 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 Operand 이 UnaryExpression 의 arguments
요소인 입니다.
가 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이고 Call 및 Method 속성이 지정된 값으로 설정된 Arguments입니다.
예외
method
이(가) null
인 경우
arguments
의 요소 수가 method
로 나타내는 메서드의 매개 변수 수와 같지 않은 경우
또는
arguments
의 요소 중 하나 이상을 method
로 나타내는 메서드의 해당 매개 변수에 할당할 수 없는 경우
설명
가 이 아닌 null
경우 arguments
가 나타내는 method
메서드에 대한 매개 변수 수와 동일한 수의 요소가 있어야 합니다. 의 arguments
각 요소는 이 아니 null
어야 하며 따옴표로 묶은 후 의 method
해당 매개 변수에 할당할 수 있어야 합니다.
참고
해당 메서드 매개 변수가 형식 Expression인 경우에만 요소가 따옴표가 붙습니다. 따옴표는 요소가 노드에 래핑됨을 Quote 의미합니다. 결과 노드는 속성 Operand 이 UnaryExpression 의 arguments
요소인 입니다.
가 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이고 Call 및 Object 속성이 지정된 값으로 설정된 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이고 Call 및 Object 속성이 지정된 값으로 설정된 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이고 Call 및 Object 속성이 지정된 값으로 설정된 Method입니다.
예외
instance
.Type을 method
로 나타내는 메서드의 선언 형식에 할당할 수 없는 경우
예제
다음 코드 예제에서는 인수 없이 메서드를 호출하는 식을 만드는 방법을 보여줍니다.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression represents a call to an instance method without arguments.
Expression callExpr = Expression.Call(
Expression.Constant("sample string"), typeof(String).GetMethod("ToUpper", new Type[] { }));
// Print out the expression.
Console.WriteLine(callExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<String>>(callExpr).Compile()());
// This code example produces the following output:
//
// "sample string".ToUpper
// SAMPLE STRING
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression represents a call to an instance method without arguments.
Dim callExpr As Expression = Expression.Call(
Expression.Constant("sample string"), GetType(String).GetMethod("ToUpper", New Type() {}))
' Print the expression.
Console.WriteLine(callExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of String))(callExpr).Compile()())
' This code example produces the following output:
'
' "sample string".ToUpper
' SAMPLE STRING
설명
(Shared
Visual Basic의 경우) 메서드에 대한 호출을 static
나타내려면 이 메서드를 호출할 때 매개 변수에 instance
대해 를 전달 null
합니다.
가 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이고 Call 및 Object 속성이 지정된 값으로 설정된 Method입니다.
예외
method
가 null입니다.
적용 대상
.NET