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)

Создает выражение 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)

Создает выражение 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, представляющий вызов метода static (Shared в Visual Basic), вызывая соответствующий метод фабрики.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)

Создает выражение 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)

Создает выражение 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)

Создает выражение 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[])

Создает выражение MethodCallExpression, представляющее вызов метода static (Shared в Visual Basic), принимающего аргументы.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)

Создает выражение MethodCallExpression, представляющее вызов метода static (Shared в Visual Basic), принимающего один аргумент.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>)

Создает выражение MethodCallExpression, представляющее вызов статического метода (Shared в Visual Basic).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)

Создает выражение 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)

Создает выражение 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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

arg1
Expression Expression Expression Expression

Объект Expression, представляющий второй аргумент.The Expression that represents the second argument.

arg2
Expression Expression Expression Expression

Объект Expression, представляющий третий аргумент.The Expression that represents the third argument.

arg3
Expression Expression Expression Expression

Объект Expression, представляющий четвертый аргумент.The Expression that represents the fourth argument.

arg4
Expression Expression Expression Expression

Объект Expression, представляющий пятый аргумент.The Expression that represents the fifth argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Исключения

Параметр method имеет значение null.method is null.

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

Создает выражение 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

Выражение Expression, указывающее экземпляр для вызова экземпляра.An Expression that specifies the instance for an instance call. (Для статического метода (Shared в Visual Basic) передается NULL.)(pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

Объект MethodInfo, представляющий целевой метод.The MethodInfo that represents the target method.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

arg1
Expression Expression Expression Expression

Объект Expression, представляющий второй аргумент.The Expression that represents the second argument.

arg2
Expression Expression Expression Expression

Объект Expression, представляющий третий аргумент.The Expression that represents the third argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A 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, представляющий вызов метода static (Shared в Visual Basic), вызывая соответствующий метод фабрики.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 (Shared в Visual Basic).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.

Возвраты

Выражение MethodCallExpression, содержащее свойство NodeType, равное Call, свойство Method, для которого задано значение MethodInfo, представляющее указанный метод static (Shared в Visual Basic), и свойство Arguments, для которого заданы указанные аргументы.A 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.

Комментарии

Свойство результирующего MethodCallExpression объекта равно возвращаемому типу метода, обозначенного значением methodName. TypeThe Type property of the resulting MethodCallExpression is equal to the return type of the method denoted by methodName. Значение свойства Objectnull.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)

Создает выражение 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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

arg1
Expression Expression Expression Expression

Объект Expression, представляющий второй аргумент.The Expression that represents the second argument.

arg2
Expression Expression Expression Expression

Объект Expression, представляющий третий аргумент.The Expression that represents the third argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Исключения

Параметр method имеет значение null.method is null.

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, для значения свойства Type которого будет выполнен поиск определенного метода.An 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.

Возвраты

Выражение MethodCallExpression, содержащее свойство NodeType, равное Call, свойство Object, равное instance, Method, для которого задано значение MethodInfo, представляющее указанный метод экземпляра, а для указанных аргументов заданы значения Arguments.A 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.

Комментарии

Свойство результирующего MethodCallExpression объекта равно возвращаемому типу метода, обозначенного значением methodName. TypeThe 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)

Создает выражение 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

Выражение Expression, указывающее экземпляр для вызова экземпляра.An Expression that specifies the instance for an instance call. (Для статического метода (Shared в Visual Basic) передается NULL.)(pass null for a static (Shared in Visual Basic) method).

method
MethodInfo MethodInfo MethodInfo MethodInfo

Объект MethodInfo, представляющий целевой метод.The MethodInfo that represents the target method.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

arg1
Expression Expression Expression Expression

Объект Expression, представляющий второй аргумент.The Expression that represents the second argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Примеры

В следующем примере кода показано, как создать выражение, вызывающее метод экземпляра, который имеет два аргумента.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)

Создает выражение 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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

arg1
Expression Expression Expression Expression

Объект Expression, представляющий второй аргумент.The Expression that represents the second argument.

arg2
Expression Expression Expression Expression

Объект Expression, представляющий третий аргумент.The Expression that represents the third argument.

arg3
Expression Expression Expression Expression

Объект Expression, представляющий четвертый аргумент.The Expression that represents the fourth argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Исключения

Параметр method имеет значение null.method is null.

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

Выражение Expression, задающее экземпляр для вызова метода экземпляра (для метода null (static в Visual Basic) передается 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, который следует задать в качестве значения свойства Method.A 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, равным Call, и свойствами Object, Method и Arguments, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object, Method, and Arguments properties set to the specified values.

Исключения

Свойство method имеет значение null.method is null.

- или --or- Свойство instance имеет значение null, а свойство method представляет метод экземпляра.instance is null and method represents an instance method.

- или --or- arguments не является null и один или несколько его элементов является 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 невозможно присвоить соответствующему параметру метода, представленного свойством method.One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

Комментарии

Чтобы представить static вызов метода ( null Shared в Visual Basic) instance , передайте параметр при вызове этого метода или вызовите 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 methodпараметр не равен ,числоэлементовдолжносовпадатьсколичествомпараметровдляметода,представленногопараметром.nullIf 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. Полученный узел — это UnaryExpression , Operand argumentsсвойство которого является элементом.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Свойство результирующего MethodCallExpression объекта является пустым, если arguments имеет nullзначение. ArgumentsThe 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.

Свойство результирующего MethodCallExpression объекта равно возвращаемому типу метода, представленного параметром method. TypeThe 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 для метода static (Shared в Visual Basic).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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

arguments
IEnumerable<Expression>

IEnumerable<T>, содержащий все объекты Expression, используемые для заполнения коллекции Arguments.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

Возвраты

Выражение MethodCallExpression со свойством NodeType, равным Call, и свойствами Object, Method и Arguments, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object, Method, and Arguments properties set to the specified values.

Исключения

Свойство method имеет значение null.method is null.

- или --or- Свойствоinstance имеет значение null , а свойство 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 невозможно присвоить соответствующему параметру метода, представленного свойством method.One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

Комментарии

Чтобы представить static вызов метода ( null Shared в Visual Basic) instance , передайте параметр при вызове этого метода или вызовите 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 methodпараметр не равен ,числоэлементовдолжносовпадатьсколичествомпараметровдляметода,представленногопараметром.nullIf 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. Полученный узел — это UnaryExpression , Operand argumentsсвойство которого является элементом.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Свойство результирующего MethodCallExpression объекта является пустым, если arguments имеет nullзначение. ArgumentsThe 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.

Свойство результирующего MethodCallExpression объекта равно возвращаемому типу метода, представленного параметром method. TypeThe 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[])

Создает выражение MethodCallExpression, представляющее вызов метода static (Shared в Visual Basic), принимающего аргументы.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 (Shared в Visual Basic), чтобы задать значение Method для свойства.A 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 и Arguments, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Method and Arguments properties set to the specified values.

Исключения

Свойство method имеет значение null.method is null.

Число элементов в arguments не соответствует числу параметров метода, представленного свойством method.The number of elements in arguments does not equal the number of parameters for the method represented by method.

-или--or- Один или несколько элементов в arguments невозможно присвоить соответствующему параметру метода, представленного свойством method.One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

Комментарии

Если arguments methodпараметр не равен ,числоэлементовдолжносовпадатьсколичествомпараметровдляметода,представленногопараметром.nullIf 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. Полученный узел — это UnaryExpression , Operand argumentsсвойство которого является элементом.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Свойство результирующего MethodCallExpression объекта является пустым, если arguments имеет nullзначение. ArgumentsThe 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.

Свойство результирующего MethodCallExpression объекта равно возвращаемому типу метода, представленного параметром method. TypeThe Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method. Значение свойства Objectnull.The Object property is null.

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

Создает выражение MethodCallExpression, представляющее вызов метода static (Shared в Visual Basic), принимающего один аргумент.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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Исключения

Параметр method имеет значение null.method is null.

Примеры

В следующем примере показано, как создать выражение, которое вызывает static метод (Shared в Visual Basic), который принимает один аргумент.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>)

Создает выражение MethodCallExpression, представляющее вызов статического метода (Shared в Visual Basic).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

Объект MethodInfo, представляющий целевой метод.The MethodInfo that represents the target method.

arguments
IEnumerable<Expression>

Коллекция выражений Expression, представляющая аргументы вызова.A collection of Expression that represents the call arguments.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A 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

Выражение Expression, задающее экземпляр для вызова метода экземпляра (для метода null (static в Visual Basic) передается 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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A 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- Свойствоinstance имеет значение null , а свойство 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 null ) instance , передайте параметр при вызове этого метода.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.

Свойство результирующего MethodCallExpressionобъектапусто. ArgumentsThe Arguments property of the resulting MethodCallExpression is empty. Свойство равно возвращаемому типу метода, представленного параметром method. TypeThe 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)

Создает выражение 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, который следует задать в качестве значения свойства Method.A MethodInfo to set the Method property equal to.

arg0
Expression Expression Expression Expression

Объект Expression, представляющий первый аргумент.The Expression that represents the first argument.

arg1
Expression Expression Expression Expression

Объект Expression, представляющий второй аргумент.The Expression that represents the second argument.

Возвраты

Выражение MethodCallExpression со свойствомNodeType, равным Call, и свойствами Object и Method, для которых заданы указанные значения.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Исключения

Параметр method имеет значение null.method is null.

Применяется к